我有一个实体AuditLog ,它与AuditParameter保持一对多关系:
@Entity
public class AuditLog implements IAuditLog, Serializable {
// ...
@OneToMany(targetEntity = AuditParameter.class, mappedBy = "auditLog")
private List<IAuditParameter> parameters;
}
原因的AuditParameter具有@ManyToOne(targetEntity = AuditLog.class) private IAuditLog auditLog
.
我想获取所有已获取关系列表的AuditLog记录。我尝试了以下方法:
Session session = ((EntityManagerImpl)em.getDelegate()).getSession();
Criteria audits = session.createCriteria(AuditLog.class)
.setFetchMode("parameters", FetchMode.JOIN);
但实际上这会生成一个LEFT OUTER JOIN
. 有人可以向我解释为什么这会生成外连接以及如何将AuditParameters急切地加载到参数集合中吗?