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”)代码>我已经试过了,它没有按字符数排序。谢谢你的回复,欧根