我的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