Java 如何在hibernate条件上使用联接列?

Java 如何在hibernate条件上使用联接列?,java,mysql,hibernate,Java,Mysql,Hibernate,我有3个实体通过OneTONE关系加入。我的目标是使用hibernate标准获取实体,其中match.status!=空。如何告诉hibernate不要将algo实体加入到结果中,应该是(pick.algo=null) 条件查询: public List<Pick> getPicksHistory(){ Criteria criteria = session.createCriteria(Pick.class); criteria.add(Restrictions

我有3个实体通过OneTONE关系加入。我的目标是使用hibernate标准获取实体,其中
match.status!=空
。如何告诉hibernate不要将
algo
实体加入到结果中,应该是(pick.algo=null)

条件查询:

public List<Pick> getPicksHistory(){
    Criteria criteria = session.createCriteria(Pick.class);  
    criteria.add(Restrictions.isNotNull("match.status"));
    return criteria.list();
public List getpickstory(){
条件=session.createCriteria(Pick.class);
添加(Restrictions.isNotNull(“match.status”);
返回条件。list();

}

您可以添加别名并将您的条件应用于别名

Criteria criteria = session.createCriteria(Pick.class);  
criteria.createAlias("match", "match", JoinType.INNER_JOIN); //<---
criteria.add(Restrictions.isNotNull("match.status"));
Criteria=session.createCriteria(Pick.class);

createAlias(“匹配”、“匹配”、JoinType.INNER\u JOIN)// 从hibernate文档()中:

Criteria criteria = session.createCriteria(Pick.class);  
criteria.createAlias("match", "match", JoinType.INNER_JOIN); //<---
criteria.add(Restrictions.isNotNull("match.status"));
Criteria criteria = session.createCriteria(Pick.class);
criteria.createAlias("match", "m");
criteria.add(Restrictions.isNotNull("m.status"));
criteria.setFetchMode("algo", FetchMode.LAZY);
criteria.list();