我正在使用Spring和Hibernate。我有一个使用HibernateTemplate从数据库中检索的对象。
当我修改这个对象时,Hibernate会在数据准备好插入之前插入数据库,结果就是“无法将NULL插入...”这一行的很多数据库错误。
有没有办法告诉Spring / Hibernate“在我调用HibernateTemplate.persist()之前不要用这个来更新数据库”?我查看了HibernateTemplate javadoc但找不到任何内容
答案 0 :(得分:1)
Hibernate正在刷新更改,因为您使用事务范围的持久性上下文。这意味着当事务提交时,所有托管实体都与数据库同步。如果你不喜欢它,那么就不要让你的方法成为交易方法。这样你获得的实体将不会与数据库同步 - 不会有任何事务提交。
答案 1 :(得分:0)
尝试注释您不希望进行任何修改的方法:
@Transactional(readOnly = true)
public yourMethod(){
//some hibernate-spring code here
}