暂态对象异常 TransientObjectException

org.hibernate.TransientObjectException: com.zbaccp.entity.Orders
 at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:219)
 at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
 at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:242)
 at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:482)

 

一般情况下的报错原因:在保存一个临时态对象时,如果其还关联了一个或多个临时态对象,同时没有设置级联保存。

 

解决方案:在实体配置文件中设置cascade属性为save-update或all。

 

但此次的报错比较异常,在已经设置了cascade属性的情况下还是会报错。

    如在orders中添加了两个orderline对象,则数据库中对于orderline的保存是正确的,但是会保存三个orders记录,且后俩个的记录全为空值。

 原因: 在实体类orderline中new了一个orders对象,又设置了级联保存。

 解决方案: 只是创建对象即可,无需new。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值