SSH两次查询同一记录…内存地址不一样…?
User u1 = super.getHibernateTemplate().get(User.class, 1L);
User u2 = super.getHibernateTemplate().get(User.class, 1L);
System.out.println(u1);
System.out.println(u2);
System.out.println(u1==u2);
控制台输出:
@ae42d3
@5cb56d
false
问题是:如果单纯用Hibernate内存地址是一样的…SSH整合以后就不行了…
------解决方案--------------------重新 写下 User hashcode and equals 就可以了和框架没有关系
------解决方案--------------------get方法每次都发sql 你用load 这样去读hibernate的一级缓存 打印肯定是一样的 当然你得在一个session中操作
------解决方案--------------------User重写equals hashCode
------解决方案--------------------
有一种东西叫做opensessioninview 你都配置了2级缓存了 原因就是你用的是get这个方法