hibernate 多表插入问题?

finan861008 2008-07-24 04:10:23
//主表配置
<hibernate-mapping>
<class name="com.hw.model.UAskPmas" table="u_AskPMas">
<id name="askId" type="java.lang.Integer">
<column name="ASK_ID" />
<generator class="identity" />
</id>
<property name="rkdh" type="java.lang.String">
<column name="RKDH" length="200" not-null="true" />
</property>
<property name="kdrq" type="java.util.Date">
<column name="KDRQ" length="23" not-null="true" />
</property>
<property name="carryKind" type="java.lang.Integer">
<column name="CarryKind" />
</property>
<property name="shrq" type="java.util.Date">
<column name="SHRQ" length="23" />
</property>
<property name="auditFlag" type="java.lang.Integer">
<column name="AuditFlag" />
</property>
<property name="remark" type="java.lang.String">
<column name="Remark" length="250" />
</property>
<set name="uaskpdet" order-by="ASKD_ID" lazy="true" inverse="true" cascade="all">
<key>
<column name="ASKD_ID"/>
</key>
<one-to-many class="com.hw.model.UAskPdet"/>
</set>
<many-to-one name="empinfo" class="com.hw.model.UBsEmpInfo" lazy="proxy">
<column name="YWY"/>
</many-to-one>
<many-to-one name="provide" class="com.hw.model.UBsProvide" lazy="proxy">
<column name="Provid_ID"/>
</many-to-one>
</class>
</hibernate-mapping>
//从表配置
<hibernate-mapping>
<class name="com.hw.model.UAskPdet" table="u_AskPDet">
<id name="askdId" type="java.lang.Integer">
<column name="ASKD_ID" />
<generator class="identity"></generator>
</id>
<property name="xh" type="java.lang.Integer">
<column name="XH" />
</property>
<property name="num" type="java.lang.Float">
<column name="Num" precision="53" scale="0" />
</property>
<property name="price" type="java.lang.Float">
<column name="Price" precision="53" scale="0" />
</property>
<property name="je" type="java.lang.Float">
<column name="JE" precision="53" scale="0" />
</property>
<property name="remark" type="java.lang.String">
<column name="Remark" length="250" />
</property>
<many-to-one name="uaskpmas" class="com.hw.model.UAskPmas" not-null="true" insert="true" update="true">
<column name="ASK_ID"/>
</many-to-one>
<many-to-one name="scpinfo" class="com.hw.model.UBscpinfo" cascade="none" not-found="ignore">
<column name="PRO_ID"/>
</many-to-one>
</class>
</hibernate-mapping>
//插入出现异常
Hibernate: insert into u_AskPMas (RKDH, KDRQ, CarryKind, SHRQ, AuditFlag, Remark, YWY, Provid_ID) values (?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into u_AskPDet (XH, Num, Price, JE, Remark, ASK_ID, PRO_ID) values (?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into u_AskPDet (XH, Num, Price, JE, Remark, ASK_ID, PRO_ID) values (?, ?, ?, ?, ?, ?, ?)
2008年07月24日 16:02:10,838 ERROR StockImpl:22 - 位置[StockImpl.TxInsertAskPmas]发生错误
org.springframework.dao.InvalidDataAccessApiUsageException: com.hw.model.UBscpinfo; nested exception is org.hibernate.TransientObjectException: com.hw.model.UBscpinfo
org.hibernate.TransientObjectException: com.hw.model.UBscpinfo
...全文
209 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wz436392521 2008-07-28
  • 打赏
  • 举报
回复
看错...................
_重剑无锋_ 2008-07-28
  • 打赏
  • 举报
回复
UAskPdet uaskPdet=new UAskPdet();
UAskPmas uaskPmas=new UAskPmas();

uaskPdet.setUaskpmas(uaskPmas);
uaskPmas.getUaskpdet().add(uaskPdet);

session.save(uaskPmas);
finan861008 2008-07-25
  • 打赏
  • 举报
回复
问题检查出来了,原来是最后一个插入语句为空值出异常!
finan861008 2008-07-25
  • 打赏
  • 举报
回复
问非所答..........
wz436392521 2008-07-25
  • 打赏
  • 举报
回复
hibernate多表查询说简单是很简单的,如果不考虑性能问题把延迟加载打开就行了,如果考虑的话就动态的打开延迟加载,用完之后在关闭掉就好了。
mellow_msb 2008-07-25
  • 打赏
  • 举报
回复

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧