2014-11-25 153 views
1

我如何acheive以下SQL查詢使用休眠條件查詢:休眠條件與2個條件子句中1個查詢

select * from Table1 where (A,B) in (select A,B from Table2) 
+1

你不能。在Criteria和AFAIK中都沒有支持,甚至在HQL中也沒有。 – 2014-11-25 07:52:20

+0

我們可以使用SubQueries完成相同的操作 – Prashanth 2014-11-25 12:43:31

回答

2

假設我們具有下面的代碼表2.關於表1標準和標準獨立工作完美:

Criteria criteria = new Criteria(Table1.class); 

DetachedCriteria dc = DetachedCriteria.forClass(Table2.class); 
ProjectionList projList = Projections.projectionList(); 
projList.add(Projections.property("column1")); 
projList.add(Projections.property("column2")); 
dc.setProjection(Projections.distinct(projList)); 

criteria.add(Subqueries.propertiesIn(new String[]{"column1","column2"}, dc)); 
+0

您救了我。非常感謝 – HouseFragance 2017-05-19 09:36:22