考虑一个实体
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/