在Criteria中填充OneToMany关系

时间:2013-05-02 11:36:39

标签: hibernate hibernate-criteria

我有一个实体 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 加载到参数集合中来实现?

0 个答案:

没有答案