读书人

SSH两次查询同一记要…内存地址不一样

发布时间: 2012-10-17 10:25:46 作者: rapoo

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这个方法

读书人网 >J2EE开发

热点推荐