有三张数据库表:A, B, C
A 的的字段包括:ida(PK), idb
B 的属性包括:idb(PK), idc
C 的属性包括:idc(PK), name
对应的实体是A :ida, B
实体B:idb, C
实体C:idc, name
我现在想通过C 的name属性进行条件查询。
我的HQL 语句是:
select ida, B.C.name from A
上面这句select语句是没有问题的。
我现在要做条件查询:
select ida, B.C.name from A where B.C.name like '%北京%'
这里加上where条件之后,就报错了。
org.hibernate.QueryException: could not resolve property:
但是下面这样的查询是没有问题的
select ida, B.C.name, B.C.idc from A where B.C.idc='123'
因为这里涉及到了三级查询,不知道是不是级数太多了,级数多了之后就只能用主键进行查询。
------解决思路----------------------
试试
select a.ida, c.name from A a left join a.B b left join b.C c where c.name like '%北京%'