Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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 Hibernate条件按术语长度排序_Java_Mysql_Hibernate_Jakarta Ee_Criteria - Fatal编程技术网

Java Hibernate条件按术语长度排序

Java Hibernate条件按术语长度排序,java,mysql,hibernate,jakarta-ee,criteria,Java,Mysql,Hibernate,Jakarta Ee,Criteria,我想按长度订购我的条款,相当于: SELECT term FROM <table_name> where term like '%now%' order by length(term ) asc; 从其中选择术语,如“%now%”按长度排序(术语)asc; 冬眠 目前,这是我的标准代码: Criteria criteria = session.createCriteria(myClass.class); criteria.setProjection(Projec

我想按长度订购我的条款,相当于:

SELECT term FROM <table_name> where term  like '%now%' order by length(term ) asc;
从其中选择术语,如“%now%”按长度排序(术语)asc;
冬眠

目前,这是我的标准代码:

    Criteria criteria = session.createCriteria(myClass.class);
    criteria.setProjection(Projections.distinct(Projections.property("term")));
    criteria.add(Restrictions.ilike("term", "%xyz%"));
    criteria.addOrder(Order.asc("term"));
    criteria.setMaxResults(10);
    List<String> list = criteria.list();
Criteria=session.createCriteria(myClass.class);
标准.setProjection(Projections.distinct(Projections.property(“术语”)));
条件.add(Restrictions.ilike(“term”、“%xyz%”);
标准.追加订单(订单asc(“期限”));
标准:setMaxResults(10);
List=criteria.List();

干杯

根据这个JPAQL有一个长度函数

和10.2.5.16

8.1.6中有一些关于等效标准的评论:


没有一篇文章将其应用于ORDERBY子句,而不是where子句,但希望是有用的。

您无法按照这样的标准进行排序,您需要使用JPQL进行这种排序


JPQL订单文档:

您需要添加
criteria.addOrder(Order.asc(“term”)我已经试过了,它没有按字符数排序。谢谢你的回复,欧根