用于3个表之间连接的Hibernate查询条件

use*_*377 1 java hibernate hibernate-criteria

我有一个SQL查询:

select * from A
INNER JOIN B
ON A.id = B.id
INNER JOIN C
ON B.id = C.id
INNER JOIN D
ON C.id = D.id
where D.name = 'XYZ'
   and D.Sex = 'M'
Run Code Online (Sandbox Code Playgroud)

我一直试图为上面的sql提供hibernate查询条件,但是遇到了问题.任何人都可以帮忙吗?

JB *_*zet 5

Criteria c = session.createCriteria(A.class, "a");
                    .createAlias("a.b", "b")
                    .createAlias("b.c", "c")
                    .createAlias("c.d", "d")
                    .add(Restrictions.eq("d.sex", "M"))
                    .add(Restrictions.eq("d.name", "XYZ"));
Run Code Online (Sandbox Code Playgroud)