我想在entityManager中使用Update
运行createNativeQuery
查询。我无法运行它。
我的类(class)结构:
class ABC_DAO
{
List<a> = entityManager.createNativeQuery(select.......); //sql1 : it is working fine
Sysout("some value"); // it is working
entityManager.createNativeQuery(update.......);// ***sql2 :it is not working***
Sysout("some value"); // it is working
}
Hibernate不执行
sql2
,而是执行sql2
。我们正在使用Postgres db。此查询必须在Sql中。我们在JPA中使用了Hibernate。 最佳答案
让我尝试代表您的错误代码示例和问题描述为您提供帮助。
1)如果您在查询中调用List
,则只会得到查询结果的getResultList()
,否则sql1
无法正常工作(如果要获取帮助,请发布完整的代码):
List<a> = entityManager.createNativeQuery("sql1", a.class).getResultList();
2)对于更新语句,您必须调用方法
executeUpdate()
而不是getResultList()
(或getSingleResult()
)来将 native SQL语句发送到数据库:int countUpdated = entityManager.createNativeQuery("sql2").executeUpdate();