您的位置:首页 > 其它

hibernate 常见问题一览

2015-09-10 14:56 253 查看
1.保存 实体类 saveorupdate(),只有select语句,没有发出insert 语句 ,循环比例时,只插入了最后一条

查看事务处理,@Transactional(readOnly = false) 注意事务中引用事务的情况。

当带有@Transactional 标记的方法中引用 for循环 插入语句时,有可能会 出现循环语句只插入了最后一条。

需要将遍历的内容放到新的方法中,新方法使用@Transactional 标记,父方法去掉@Transactional 标记,注意查看类的事务标记不要影响到方法

2.@manytoone lazy=true 不起作用 原因:带有@NotFound 时,hibernate需要判断是否存在该对象,所以lazy不起作用.

3. hibernate 循环便利保存对象时 ,debug模式,虽然是 cretia.list() 但确insert语句,inser语句插入的内容是上一条内容.

4. 当保存的对象中有多对一(manytoone) 关系时,没有对其设置 one端的对象而保存时,也会报 以下异常

org.hibernate.TransientObjectException: com.entity.SysUser
		at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
		at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
		at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:221)
		at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:476)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: