我有三个班级说,A如下所示:BC
类A与 有OneToOne关系B:
Class A {
@OneToOne
B b;
}
并与B有着热切的关系C。
Class B {
@ManyToOne(fetch=fetchType.EAGER)
C c;
}
我想有一个标准(on A)并将其加入B以从这两个表中检索一些数据。但是当我使用createAlias(或任何其他特定连接)时C,表也会被连接。B(显然是因为和之间的急切关系C)。像这样的东西:
Criteria aCrit = session.createCriteria(A.class, "a");
aCrit.createAlias("a.b", "b");
aCrit.setProjection(Projections.property("b.name");
aCrit.list();
问题是,因为我不需要C,我不希望它加入。如何手动防止此类操作?