Java Hibernate criteria alias生成innej联接,该联接将读取查询结果
我有一个DAO,它使用搜索意外事件的criteria.list()搜索对象。它应返回以下事故: 1) 具有类型A和accidentAttribs(映射为集合,但其中只有一个元素)TITLE=Test 2) 不属于A类的所有其他事故,即使它们没有任何属性 创建此别名:Java Hibernate criteria alias生成innej联接,该联接将读取查询结果,java,hibernate,Java,Hibernate,我有一个DAO,它使用搜索意外事件的criteria.list()搜索对象。它应返回以下事故: 1) 具有类型A和accidentAttribs(映射为集合,但其中只有一个元素)TITLE=Test 2) 不属于A类的所有其他事故,即使它们没有任何属性 创建此别名: criteria.createAlias("accidentAttribsSet", "accidentAttrib"); 在两个表之间进行内部联接,不返回没有属性的意外 criteria.createAlias("accide
criteria.createAlias("accidentAttribsSet", "accidentAttrib");
在两个表之间进行内部联接,不返回没有属性的意外
criteria.createAlias("accidentAttribsSet", "accidentAttrib");
criteria = criteria.add(Restrictions.or(
Restrictions.not(Restrictions.eq("type", "A")),
Restrictions.and( Restrictions.eq("type", "A"),Restrictions.eq("accidentAttrib.title", "Test") )
)
);
I db I有类型为B的事故,它们还没有任何属性,此查询不会返回它们。内部联接意味着结果集中只有具有属性的事故。你应该尝试使用左连接
criteria.createAlias("accidentAttribsSet", "accidentAttrib", JoinType.LEFT.ordinal());