我想在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();

09-26 03:08