Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HQL将复杂的HQL转换为标准_Java_Hibernate_Criteria Api - Fatal编程技术网

Java HQL将复杂的HQL转换为标准

Java HQL将复杂的HQL转换为标准,java,hibernate,criteria-api,Java,Hibernate,Criteria Api,HQL 以上HQL工作正常。希望在标准api中进行更改。我做不到。请帮助我,我想你可以试试这样的东西 Query query = getSession() .createQuery( "select com from News as news " + "join news.comments as com " + "where news.id = :id " +

HQL


以上HQL工作正常。希望在标准api中进行更改。我做不到。请帮助我,我想你可以试试这样的东西

Query query = getSession()
        .createQuery(
                "select com from News as news " +
                "join news.comments as com " +
                "where news.id = :id " +
                "order by com.addDate desc"
        );
query.setParameter("id", id);
criteriac=createCriteria(News.class);
c、 添加(限制。idEq(id));
标准cComment=c.createCriteria(“注释”,c);
添加订单(订单描述(“添加日期”);
ProjectionList projections=projections.ProjectionList();
项目。添加(项目。财产(“c.id”),“id”);
预测。添加(预测。属性(“c.addDate”),“addDate”);
//其他属性。。。
c、 设置投影(投影)
c、 setResultTransformer(Transformers.aliasToBean(Comment.class))
List=c.List();

请注意,Hibernate Criteria API被弃用,取而代之的是JPA Criteria API

您的示例非常好,但它返回了列表新闻。我想退货。哦,对不起。你对这条新闻有何评论?
    Criteria c  = createCriteria(News.class);
    c.add(Restrictions.idEq(id));
    Criteria cComment = c.createCriteria("comments",c);
    cComment.addOrder(Order.desc("addDate"));
    ProjectionList projections = Projections.projectionList();
    projections.add(Projections.property("c.id"),"id");
    projections.add(Projections.property("c.addDate"),"addDate");
    //Other Properties...
    c.setProjection(projections)
    c.setResultTransformer(Transformers.aliasToBean(Comment.class))
    List<News> list = c.list();