【发布时间】:2014-11-11 16:15:12
【问题描述】:
我正在使用 JPA 2.1 和 Hibernate 4.3.6.Final (MySQL 5.5)。在我的 JPA CriteriaBuilder 查询中,我返回的唯一列是最终计算结果为整数的表达式。但是,我如何告诉 JPA 仅根据第一列对结果进行排序?我有……
final CriteriaBuilder builder = m_entityManager.getCriteriaBuilder();
final CriteriaQuery<Integer> criteria = builder.createQuery(Integer.class);
final Root<User> user = criteria.from(User.class);
criteria.where(builder.and(builder.like(user.get(User_.userName), userNamePrefix + "%"),
builder.equal(user.get(User_.url), url)));
criteria.select( builder.substring(user.get(User_.userName), userNamePrefix.length()).as(Integer.class) );
criteria.orderBy( ??? );
我在“???”中输入了什么告诉 JPA 对返回的唯一数据列进行排序?我意识到我可以获取所有列并使用 Java 进行排序,但我现在想避免这种情况。
谢谢,- 戴夫
【问题讨论】:
标签: hibernate jpa sql-order-by jpa-2.1