我运行以下代码打算更新Hibernate 3.6.7 final(JPA 2.0?)表中的最少记录:
Query query = em.createQuery("UPDATE MyTable a SET a.isEnable=1 WHERE a.isEnable=0 ORDER BY a.id DESC").setMaxResults(1);
query.executeUpdate();
但是hibernate在生成sql时会忽略ORDER BY
。
ORDER BY
的{{1}}仅用于JPQL吗?如何在JPA中使用SELECT
执行UPDATE
查询?
感谢您的帮助。
答案 0 :(得分:0)
要使用表格中的最后一个ID更新记录,请执行以下操作:
TypedQuery<MyEntity> query = em.createQuery("SELECT a FROM MyEntity a WHERE a.isEnable=0 ORDER BY a.id DESC", MyEntity.class);
query.setMaxResults(1);
List<MyEntity> resultList = query.getResultList();
if (resultList.size()>0) {
resultList.get(0).setEnabled(true);
//eventually you can to em.flush();
}