有二张表
student
id name
1 张三
books
id stuId(外键) bookName type
1 1 MySql 数据库
2 1 Java 程序语言
请问:在使用Hibernate即时加载的情况下:
"From Student "会把所有加载books集合,可以把学生和书查出来,如果想在即时加载时只查books表中type为"数据库"的,请问如何写Hql? 谢谢!
[b]问题补充:[/b]
请问: 如果我的配置文件里使用延时加载的话,我的hql如何写才能够即时加载books的集合呢?并且符合上面的条件 .. 谢谢了!
HQL语句就像楼上这位朋友写的。
如果你设置了延迟加载,当你检索完一个Student对象后,Hibernate不会初始化这个对象中的books集合,当你调用student.getBooks().iterator()这段代码的时候,Hibernate就会为你初始化这个集合了。所以,不用担心HQL语句的问题,正常查询就可以了。
如果要写这样的HQL语句的话,你可以这样写试试from Student s join fetch s.books
from Student s where s.books.type ='数据库'
books 为 Student 的一个Set 类型的属性
需要在Student.hbm.xml 里配置。
Student 和 Book之间的一对多的关系。
希望对lz有所帮助