Java hibernate 查询中 order by 子句的问题

标签 java mysql hibernate

您好,我正在使用 hibernate 查询并尝试按 id 排序结果,但 getResultList 函数始终按升序返回结果,即使我的查询具有 deviceActivityLogId 的 order by 子句。

这是我的功能

public List<DeviceActivityLog> getActivityLogForSysActivityId(int userDeviceRelId,int sysActivityId, int parentId, boolean deleteFlag) {
       String query = "select d from DeviceActivityLog d WHERE d.userDeviceRelId = :userDeviceRelId  and d.deleteFlag = :deleteFlag";
       if (sysActivityId > 0) {
           query += " and d.sysActivityId = :sysActivityId";
       }
       if (parentId >= 0) {
           query += " and d.isParent =:parentId";
       }
       TypedQuery<DeviceActivityLog> deviceQuery = entityManager.createQuery(query, DeviceActivityLog.class);
       deviceQuery.setParameter("userDeviceRelId", new UserDeviceRel(userDeviceRelId));
       deviceQuery.setParameter("deleteFlag", deleteFlag);
       if (sysActivityId > 0) {
           deviceQuery.setParameter("sysActivityId", new SysActivity(sysActivityId));
       }
       if (parentId >= 0) {
           deviceQuery.setParameter("parentId", parentId);
       }
       query+=" order by d.deviceActivityLogId desc";

       System.out.println("QUERY: "+query);

       return deviceQuery.getResultList();
   }

任何人都可以提供如何按降序排列结果列表的灵魂吗?

最佳答案

在根据查询变量的上一个值创建 TypedQuery 对象后,您将向查询字符串变量分配一个新值。

这基本上相当于

String message = "Hello";
System.out.println(message);
message += " World";

这显然会打印 Hello,而不是 Hello World。

如果代码是,它将打印 Hello World

String message = "Hello";
message += " World";
System.out.println(message);

关于Java hibernate 查询中 order by 子句的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31355822/

相关文章:

java - 如果某些命名约定(例如大写方法名称)如此令人不悦,那么为什么语言完全允许它们呢?

java - 如何使 float 按钮可点击

Mysql 变量 '@' 不适用于 'IF'

mysql - 如何在不删除换行符的情况下在 Sweave 中使用 SQL 查询格式化 R 源代码?

spring - 更新 JPA(Hibernate) 实体 : transactional or non-transactional and why? 的更好方法是什么

java - keytool 在 Ubuntu : incorrect magic 中不工作

java - 如何在android中读取和显示SVG文件

Mysql 外键创建

java - Spring -slf4J : how to automatically log errors and exceptions?

java - MappedSuperclass 和 Embeddable 之间有什么区别,我们应该如何使用