hibernate 多表关联查询的问题

独孤小败 发布于 2013/04/23 12:26
阅读 531
收藏 0

有三个实体类
A { id, B } , B {id, C} C{id}

现在有个HQL:
from A left join A.B where B.C.id = ?

也就是说,我现在有个查询条件是cid. 我要查A,请问我应该怎么弄啊?上面那条语句报错

加载中
0
小猫王
小猫王

检查 hbm配置文件,A和B  B和C 都是 一对一关系?

frem A where B.C.id=?

独孤小败
独孤小败
已查出来,属性配出错了。
小猫王
小猫王
回复 @独孤小败 : hql语句中用的属性名 要与 bean中 成员变量名相同,不是数据库字段名。这个问题我也遇到过。
小猫王
小猫王
回复 @独孤小败 : could not resolve property 可能是有个hbm文件中有个属性 hibernae不认识。hbm是自动生成的吗
独孤小败
独孤小败
不是,A和B是多对一, B和C是多对一
0
子木007
子木007
from A left join A.B left join B.C x where x.id = ?   猜的
独孤小败
独孤小败
不对,报错,org.hibernate.QueryException: could not resolve property:
0
pantrick
pantrick
from A  join A.B b  where b.cid = ? 
独孤小败
独孤小败
b实体类里面没有cid这个属性,因为配置了many-to-one关系,两个只能有一个
0
铂金苍鹰
铂金苍鹰

配置文件懒加载

独孤小败
独孤小败
是的
0
铂金苍鹰
铂金苍鹰

from A left join B ON A.B.id=B.id where B.C.id = ?

返回顶部
顶部