我有2个表,我想从这些表中获取外键相同的数据。我首先使用union编写了一个sql查询:
SELECT jw.widget_name,jw.user_id FROM dashboard.jira_widget as jw WHERE jw.user_id = '1'
UNION ALL
SELECT uw.widget_name,uw.user_id FROM dashboard.unit_test_widget as uw WHERE uw.user_id = '1'
但是Jpa根本不支持UNION。
还有其他方法可以在jpa中编写此查询吗?
答案 0 :(得分:1)
我建议尝试这个查询:
EntityManager em;
Query query = em.createQuery('SELECT jw, uw FROM JiraWidget as jw, UnitTestWidget as uw WHERE jw.userId = uw.userId AND jw.userId=:user');
query.setParameter('user', user);
由于使用了多个Select表达式,因此结果类型为Object []:
List<Object[]> results query.getResultList();
for (Object[] myUnion: results) {
JiraWidget jw = (JiraWidget) myUnion[0];
UnitTestWidget uw = (UnitTestWidget) myUnion[1];
//etc...
}