java - Hibernate查询目标列顺序

标签 java sql hibernate

考虑一个实体

Class Entity{
    String column1;
    String column2;
    String column3;
}

生成的查询类似于

Select column1, column2, column3, from Entity;

目标列(column1、column2、column3)按什么顺序放置在查询中?

假设我希望以特定顺序生成目标列 [column3 ->column1 ->column2]。如何实现这一目标?

最佳答案

一般来说,您在 Hibernate 中使用的模式是执行 HQL 查询,该查询又会返回对象/实体的列表。在这种情况下,列顺序的概念就没有多大意义了。例如:

String hql = "FROM Entity AS E";
Query query = session.createQuery(hql);
List<Object> results = query.list();
for (Object o : results) {
    System.out.println("column1 is: " + ((Entity)o).getColumn1());
}

Java POJO 的字段实际上并没有排序概念。

在针对 SQL 数据库执行原始查询的上下文中,您的要求可能有意义。在这种情况下,如果您想要不同的顺序,那么您的选择列表应该提供该顺序,例如

Transaction tx = session.beginTransaction();
SQLQuery query = session.createSQLQuery("select column3, column2, column2 from entity");
List<Object[]> rows = query.list();

在本例中,我们按顺序请求第 3、2 和 1 列。

关于java - Hibernate查询目标列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59465139/

相关文章:

java - 制作数据库接口(interface) - 查询抛出 NullPointerException

java - spring hibernate乐观锁问题

java - 正在使用变量?

sql - 使用 MAX() 和 GROUP BY 时如何选择整条记录

mysql - sql数据库中列值的多表约束

sql - 使用 bool 全文搜索按相关性排序

java - Hibernate标准,从实体A中选择,其中someId在B中

java - JPA 2 + Criteria API - 定义子查询

java - Android:使屏幕 "flash"变白

java - 工厂方法中的依赖注入(inject)导致 NullPointerException