MySQL到HQL查询

时间:2016-10-31 17:24:12

标签: mysql hibernate hql

如何将此MySQL查询转换为HQL以检索我需要的一些数据?

SELECT pu.url, count(sen.content) 
FROM Sentence sen JOIN ProcessedUrl pu 
ON sen.PROCESSED_URL_ID=pu.url_id 
GROUP BY pu.url ORDER BY 2;

在我的代码中有POJO ProcessedUrl,其中映射了id / url / date / set(of Sentence)字段。我想做类似的事情:

Session session = HibernateUtils.getSession();
Transaction transaction = session.beginTransaction();

List<ProcessedUrl> result = session.createQuery("proper HQL query", ProcessedUrl.class).getResultList();

transaction.commit();
session.close();
return result;

然后迭代此结果以打印result.getUrl()&amp;每个网址result.getSentences().size()

我知道我的查询应该返回ProcessedUrl内的字段然后如何返回一些分组查询并从中检索未直接保存在表中的数据?对于每个网址都这样count()

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我找到了正确的HQL查询,因此不再需要帮助了。

List<Object[]> result = session.createQuery("select pu.url, count(sen.content)"
        + " FROM ProcessedUrl pu"
        + " JOIN pu.sentences sen "
        + " GROUP BY pu.url "
        + " ORDER BY 2", Object[].class).getResultList();