这是一个非常令人头疼的问题。但是我要问。
我们如何建立休眠的复杂标准?
我写了两个简单的类,一个类引用了另一个。
这是我的课

public class CourseEntity extends BaseEntity {

    @OneToOne
    private CourseTypeEntity type;

    @OneToOne
    private CompanyEntity company;
}




public class CourseTypeEntity {

    @Column
    private String code;

    @Column
    private String name;
}


并试图建立类似这样的标准。

crit = session.createCriteria(CourseEntity.class, "c");
        crit.add(Restrictions.eq("c.id", 1l));
        crit.add(Restrictions.eq("c.type.id", 1l));
        crit.add(Restrictions.eq("c.company.id", 1l));
        crit.add(Restrictions.like("c.company.name", "oracle"));


是获取company.name过滤器的正确方法,每当添加最后一行时,它都会引发异常。

有人可以帮助解决此问题或其他替代方法来解决此问题吗?

谢谢

最佳答案

尝试添加别名:

crit = session.createCriteria(CourseEntity.class, "c").createAlias("c.company", "company");
        crit.add(Restrictions.eq("c.id", 1l));
        crit.add(Restrictions.eq("c.type.id", 1l));
        crit.add(Restrictions.eq("company.id", 1l));
        crit.add(Restrictions.like("company.name", "oracle"));

10-04 20:15