我进行以下查询:

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/

10-10 07:35