我想在entityManager中使用Update
运行createNativeQuery
查询。我无法运行它。
我的班级结构:
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中。我们正在使用Hibernate和JPA。
答案 0 :(得分:3)
让我代表您的错误的代码示例和问题说明帮助您。
1)如果您在其上调用List
,则只会获得getResultList()
个sql1
,否则List<a> = entityManager.createNativeQuery("sql1", a.class).getResultList();
将无效(请发布完整代码,如果你想得到帮助):
executeUpdate()
2)对于更新语句,您必须调用方法getResultList()
而不是getSingleResult()
(或int countUpdated = entityManager.createNativeQuery("sql2").executeUpdate();
)将本机SQL语句发送到数据库:
{{1}}