我进行以下查询:
String query = FROM Account acc WHERE acc.id = ? OR acc.id = ? or acc.id = ?...
我有一组ID:
long[] accountIds= {327913,327652,327910,330511,330643};
然后我做
getHibernateTemplate().find(query, accountIds);
我看到我从该查询中获得的帐户列表是:
327652,327910,327913,330511,330643,显然是,按ID排序。
我有机会按写ID的顺序找回它吗?
将感谢所有帮助
最佳答案
您无法在查询级别执行此操作。
您可以在从数据库加载后进行排序,如下所示
long[] accountIds= {327913,327652,327910,330511,330643};
List<Account> afterHql = getHibernateTemplate().find(query, accountIds);
List<Account> sortedList = new ArrayList<Acount>();
for (long id : accountIds)
{
for (Account account : afterHql)
{
if (account.getId() == id)
{
sortedList.add(account);
}
}
}
关于java - 如何避免通过ID hibernate 默认顺序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12234419/