暂态对象异常 TransientObjectException

来源:互联网 发布:java分布式开发视频 编辑:程序博客网 时间:2024/05/16 19:05

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。

原创粉丝点击