hibernate createalias add";或;内部连接的条件

hibernate createalias add";或;内部连接的条件,hibernate,join,criteria,alias,conditional-statements,Hibernate,Join,Criteria,Alias,Conditional Statements,我想使用hibernate条件和createAlias执行如下查询: 选择 表1“任何字段” 从…起 table1内部联接table2关于table1字段1=table2字段1或table1字段2=table2.field1 在哪里 主要问题是我无法将“或”条件添加到内部联接中,我应用的所有限制和内容总是变成“和”。肯定没有效率: session.createCriteria(T2.class, "t2") .add(Restriction.or( Subquery.ex

我想使用hibernate条件和createAlias执行如下查询:

选择
表1
“任何字段” 从…起
table1
内部联接
table2
关于
table1
字段1=
table2
字段1或
table1
字段2=table2.field1

在哪里


主要问题是我无法将“或”条件添加到内部联接中,我应用的所有限制和内容总是变成“和”。

肯定没有效率:

session.createCriteria(T2.class, "t2")
    .add(Restriction.or(
        Subquery.exists(DetachedCriteria.for(T1.class).add(Restrictions.eqProperty("field1", "t2.field1")),
        Subquery.exists(DetachedCriteria.for(T1.class).add(Restrictions.eqProperty("field2", "t2.field1")))
    .list();

条件只能遍历映射的关联,不能在from子句中生成任意sql。Hql更适合这种情况