我有一个问题,我花了太长时间试图弄清楚。
我是休眠新手,我有看起来像的数据。
我想写一个查询,返回这个数据看起来像这样。
如果这可以只用一条 SQL 语句来完成,那将是理想的,因为我仍然非常不熟悉 hibernate 的一些更精细的特性。我已经尝试了很多事情,我认为我可以使用 Unions 来做到这一点,但不幸的是 hibernate 不支持 unions。
任何建议表示赞赏。如果该建议是一种更加面向休眠的方法,那么将不胜感激尽可能多的细节。
更新://
从 ANGELO 的评论中,我能够使用以下方法来完成这项工作:
String newQuery = "";
List<?> list = null;
Query quer = null;
Session session = null;
session = HibernateUtilities.getSessionFactory().openSession();
newQuery =
"SELECT DISTINCT o.APPLICATION,(SELECT DATA FROM " + dataTable + " gsm WHERE gsm.APPLICATION = o.APPLICATION AND gsm.NETWORK_TYPE = 'GSM Usage') AS gsm, (SELECT DATA FROM " + dataTable + " wifi WHERE wifi.APPLICATION = o.APPLICATION AND wifi.NETWORK_TYPE = 'Wi-Fi Usage') AS wifi, (SELECT DATA FROM " + dataTable + " roam WHERE roam.APPLICATION = o.APPLICATION AND roam.NETWORK_TYPE = 'ROAMING Usage') AS roaming FROM " + dataTable + " o";
quer = session.createQuery(newQuery);
list = quer.list();
session.close();