java - 将 HQL 转换为条件

标签 java hibernate hibernate-criteria

我想在标准中转换 HQL。

HQL

select com from News as news " +
            "join news.comments as com " +
            "where news.id = :id " +
            "order by com.addDate desc"

标准

    DetachedCriteria criteria = DetachedCriteria.forClass(News.class);
    criteria.add(Restrictions.idEq(id));
    DetachedCriteria cComment = criteria.createCriteria("comments");
    cComment.addOrder(Order.desc("addDate"));
    List<Comment> list = (List<Comment>)findByCriteria(cComment, false);

标准有效,但返回新闻列表。我想回复评论。请帮助我?

最佳答案

试试这个可能对你有帮助:

DetachedCriteria criteria = DetachedCriteria.forClass(News.class);
criteria.setProjection( Projections.property("com"), "com"));
criteria.add(Restrictions.idEq(id));
DetachedCriteria cComment = criteria.createCriteria("comments");
cComment.addOrder(Order.desc("addDate"));
List<String> list = (List<String>)findByCriteria(cComment, false);

关于java - 将 HQL 转换为条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22525433/

相关文章:

java - 通过带有对象输入/输出流的 Socket 发送的对象的大小真的很重要吗?

java - tomcat 8 在服务器上运行时出现问题,如磁盘空间不足

java - Hibernate Criteria 限制字段命名困惑

java - Hibernate Criteria 中最多有两个日期列

java - 尝试理解静态变量。为什么倒数第二个打印语句中会打印 6?

java - 图像文本按钮LibGDX

java - Spring-Data-Jpa 保存: Related entities saved as null which are not

java - 如何限制hibernate criteria API获得的结果?

java - 如何删除 hibernate 泛型中未经检查的分配警告

java - 如何限制 Hibernate 仅生成来自涉及多个实体的 Criteria API 中根实体的列的 SQL 查询