日期:2014-05-17  浏览次数:20579 次

Hibernate高手速度进....
我的Person类中有个Address类的属性,如何写hibernate的HQL语句,要求HQL语句返回所有的Person对象,并且

Person对象里面的Address属性必须有内容。该如何做呢?(Person和Address都有对应的数据表,Person表中有

Address的主键,Person和Address是多对一的关系。)

HQL="from Person p inner join p.address" 我在hibernateTemplate.find(HQL)中是这样写的,可以么?

------解决方案--------------------
你不用HQL啊一样很方便啊,你返回了Person对象,调用person对象的getAddress()方法,这样Address就出来了
------解决方案--------------------
在Person的xml配置文件中的Address标签,设置lazy=false
这样做是禁用延时加载 查询出来的对象直接被设置好属性值了。
------解决方案--------------------
"from Person where 1=1" 然后可以用 person.GetAddress().getName();来调用就可以了
------解决方案--------------------
取出所有的person同时取得关联address信息,address可能为null
from Person p left join fetch p.address
如果只取出有address的person,并取得关联的address信息
from Person p inner join fetch p.address