在createNativeQuery中更新查询

时间:2018-02-02 02:27:07

标签: java postgresql hibernate jpa

我想在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。

1 个答案:

答案 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}}