[英]OR clause in LEFT_JOIN in hibernate criteria
如何在休眠條件的LEFT_JOIN中提供OR子句。
Criteria mainCrit=hibernateSession.createCriteria("Main.class");
Criteria aPropertyCrit=mainCrit.createCrieria("child",CriteriaSpecification.LEFT_JOIN);
它生成sql為
select this_.Id,this_childId....
from main as this_
left join child as child1_ on child1_ .id=this_.childId
where.....
我需要生成sql作為
select this_.Id,this_childId....
from main as this_
left join child as child1_ on child1_.id=this_.childId or child_.ParentId=this_.childId
where.....
如何在上述條件的LEFT_JOIN中提供OR子句。
即使使用Criteria API,也可以擴展JOIN ... ON部分。 但這只是為了進行更嚴格的限制,即添加AND部分。
看一下createCriteria
方法的重載,主要是Clause的最后一個參數:
Criteria createCriteria(String associationPath,
String alias,
JoinType joinType,
Criterion withClause)
throws HibernateException
創建一個新標准,在關聯實體處“植根”,分配給定別名並使用指定的聯接類型。
參數:
實際上,任何其他方法(例如,添加OR)都破壞了映射主體,從而引入了在末端進行交叉聯接的能力。 請參閱休眠條件:沒有映射關聯的聯接表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.