对于herbernate对象关联的情况 在查询某个对象时会把关联的对象全部查上来,在数据量大的时候显然很消耗性能,
所有想只查询某个对象的某几个字段,不用创建Criteria或者在hql语句中指定查询的某几个字段类似的方法,这样显然在编写代码的时候会很麻烦(比如某个对象关联的对象比较多),有没有一种合理的配置来实现只查询某个对象的某几个字段,或者谈谈这种问题你们是如何来处理的,请教!!!
所有想只查询某个对象的某几个字段,不用创建Criteria或者在hql语句中指定查询的某几个字段类似的方法,这样显然在编写代码的时候会很麻烦(比如某个对象关联的对象比较多),有没有一种合理的配置来实现只查询某个对象的某几个字段,或者谈谈这种问题你们是如何来处理的,请教!!!
楼主可以下Hibernate的帮助文档 看中文的 意思也很清楚
如果
有一个班有10个学生 如果你只想看班的信息 那就 Lazy吧
如果
有10个学生 你想查学生信息的时候一并把班级的信息查上来 那就fetch
Hibernate.initialize(rm);
}
红色的是要加裁的对象。先判断内存中是否存在。
这种方式可以在需要加裁是使用。不建议使用lazy,它对应所有,不需要加裁的也加裁了。性能不高
List list = session.createQuery("select new TUser(user.name, user.age) from TUser as user").list();
TUser user;
for (int i=0; i < list.size(); i++) {
user = (TUser)list.get(i);
System.out.println(user.getName() + ", " + user.getAge());
}
但此时,实体类TUser必须包含如下构造函数:
public TUser(String name, Integer age)
{
this.name = name;
this.age = age;
}