用户登录
用户注册

分享至

hibernate4 lazy

  • 作者: 深深地恶意
  • 来源: 51数据库
  • 2020-10-14

最好不要把lazy设置成true,那样数据量小的时候尚可以承担负荷的查询,如果数据量在上百上千之后,那么查询效率很底的,因为你每次查询的时候都会把你的所有的查询打开,比如你关联了2个表,那么这2个表的记录就都会被查,这样许多无用的也查出来的.

如果想不报session未关闭的话,那么最好使用左连接,这样就可以有效的防止这个问题了,但是你需要去指定你的对象,或者把对象封装起来也可以比如users是主表,引用了group ,rool

我们在映射文件中都配置好了对象,这样直接查询对象就可以了

string hql="from Users u left join u.group g left join g.rool r";

List list=getHibernateTemplate().find(hql);

可以这样做:

Users users=null;

if(list.size0){

Object[] obj=list.get(0);

users=(Users)obj[0];}return users;

然后在你需要的类里面可以这么调用:

user.getGroup.getrool.getXXXX();

这样可以,或者直接返回list也可以调用!

但是最好不要把lazy设置成true也许表达不好,但是看看应该明白,呵呵!


软件
前端设计
程序设计
Java相关