我在App Engine上使用JPA(我对两者都很新),我目前正面临一种我不理解的行为。
每次刷新页面时,获取的项目的顺序都会改变。
以下是代码段:
Set<Cast> results = new HashSet<Cast>();
EntityManager entityManager = entityManagerFactory.createEntityManager();
Query query = entityManager.createQuery(FIND_ALL_SORTED_BY_DESCENDING_BROADCAST_DATE);
@SuppressWarnings("unchecked")
List<Cast> casts = query.getResultList();
for (Cast cast : casts) {
if (verifySecondaryFields(cast)) {
results.add(synchronizeTechnicalFields(cast));
}
}
entityManager.close();
return Collections.unmodifiableSet(results);
其中FIND_ALL_SORTED_BY_DESCENDING_BROADCAST_DATE
实际上是SELECT cast FROM Cast cast ORDER BY cast.broadcastDate DESC
。
entityManagerFactory
是我的存储库类的自动装配成员。
事情是ORDER BY
子句似乎被忽略,结果随机出现。你能发现什么是错的吗?
答案 0 :(得分:2)
设置不保留顺序。列表呢。试试List<Cast> = new ArrayList<Cast>();
然后从那里继续。