我覺得這篇文章可以help you。
與標準,我認爲Hibernate不支持UNION ALL
但你 可以使用兩個標準的查詢,以獲得預期的結果:
Criteria cr1 = session.createCriteria(Suppliers.class);
cr1.setProjection(Projections.projectionList()
.add(Projections.property("supplier_id"), "supplier_id")
);
List results1 = cr1.list();
Criteria cr2 = session.createCriteria(Orders.class);
cr2.setProjection(Projections.projectionList()
.add(Projections.property("supplier_id"), "supplier_id")
);
List results2 = cr2.list();
results1.add(results2);
List unionAllList = results1; //this is the expected result.
例如,當你從讓你可以添加新的標準TableB如果消息不爲null,並且稍後僅加入兩個Java集合:
Criteria criteria1 = session.createCriteria(TableB.class)
.add(Restrictions.isNotNull("message")
P.S.或者我推薦使用JPA2.1(第6章)中的Criteria API而不是hibernate Criteria,因爲它看起來像簡單的SQL,而且這個解決方案更普遍。
什麼已經工作,什麼不是? –
這就是我寫的作品(如果id_a不在TableB中,則從TableA獲得id_a)。我不知道如何添加另一個標準來檢查TableB中的id_a_from_tableB是否與TableA中的id_a相等,字段「message」不爲null。 –