首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

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

2012-10-17 
SSH两次查询同一记录…内存地址不一样…?User u1 super.getHibernateTemplate().get(User.class, 1L)User

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

热点排行