原因:查询出来后是托管状态,结束时会自动保存
解决方案:session.evict(entity)
这样就将这个实体从托管状态移除了
SpringBoot2.x+Hibernate获取当前session方法:
@PersistenceContext
protected EntityManager entityManager;
public Session getCurrentSession() {
return entityManager.unwrap( Session.class );
}
最后调用就是:
getCurrentSession().evict(entity);