对网站设计的建议,如何查看网站seo,网络营销价格,企业形象网站模板出现问题#xff1a; 通过EntityManager查询出数据保存到对象中#xff0c;但是向对象set值后就自动更新到数据库中去了。
Hibernate对象的三种状态 1、瞬时态#xff1a;对象刚new出来#xff0c;还未通过save方法保存到数据库#xff0c;或通过游离态对象、持久化态对象…出现问题 通过EntityManager查询出数据保存到对象中但是向对象set值后就自动更新到数据库中去了。
Hibernate对象的三种状态 1、瞬时态对象刚new出来还未通过save方法保存到数据库或通过游离态对象、持久化态对象delete后。既没有被保存到数据库中也不处于session缓存中
2、持久化态通过从数据库查询出来或瞬时态对象save保存后或游离态对象update后已经被保存到数据库中同时也处于session缓存中
3、游离态通过持久化态对象关闭session或通过evict、clear方法强制将持久化态对象清理出session。已经被保存到数据库中但不处于session缓存中
解决方法 想办法把持久化状态的对象变成游离态就可以了。
close 方法关闭 session 可以但是若后面还要用session这个方法就不好了。clear 方法将 session 中的所有的对象全部清除出缓存evict 方法将某一个对象清除出缓存 session推荐。
代码如下
//spring注入entityManager//检查对象是否是持久化态
if(entityManager.contains(entity)){//获取sessionSession session entityManager.unwrap(org.hibernate.Session.class);//转换成游离态session.evict(entry);
}