【问题标题】:Update query in createNativeQuery在 createNativeQuery 中更新查询
【发布时间】:2018-07-12 11:48:07
【问题描述】:

我想在 entityManager 中使用createNativeQuery 运行Update 查询。我无法运行它。

我的班级结构:

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 数据库。此查询必须在 Sql 中。我们将 Hibernate 与 JPA 一起使用。

【问题讨论】:

  • 我认为如果您发布更多详细信息,您可能会得到答案。你写了什么SQL?你得到了什么例外?创建原生查询后调用了什么方法?
  • 你确定这是正确的代码吗?方法 createNativeQuery 返回的不是 List。
  • “它不工作”。哈哈。我去看看水晶球……

标签: java postgresql hibernate jpa


【解决方案1】:

让我代表您的错误代码示例和问题描述来帮助您。

1) 如果你调用getResultList(),你只会得到一个List 作为查询的结果,否则sql1 将不起作用(如果你想获得帮助,请发布完整的代码):

List<a> = entityManager.createNativeQuery("sql1", a.class).getResultList();

2) 对于更新语句,您必须调用方法executeUpdate() 而不是getResultList()(或getSingleResult())将本机SQL 语句发送到数据库:

int countUpdated = entityManager.createNativeQuery("sql2").executeUpdate();

【讨论】:

    猜你喜欢
    • 2021-11-12
    • 2015-09-02
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    相关资源
    最近更新 更多