我有课程:A,B和C
A{
B b;
}
B{
C c
}
C{
String str;
}
在ADao课程中,我想执行以下查询:
Criteria criteria = createCriteria(A.class);
criteria.add(Expression.eq("b.c.str", str));
criteria.setFetchMode("b", FetchMode.EAGER);
criteria.setFetchMode("b.c", FetchMode.EAGER);
当我执行此查询时,我得到:
QueryException:无法解析属性b.c.str
答案 0 :(得分:0)
根据the documentation中的解释,你需要使用子标准或别名进行显式连接:
Criteria criteria = createCriteria(A.class, "a");
criteria.createAlias("a.b", "b");
criteria.createAlias("b.c", "c");
criteria.add(Expression.eq("c.str", str));