gpt4 book ai didi

java - EntityManager 返回的 JPA 查询对象是否可重用?

转载 作者:搜寻专家 更新时间:2023-10-31 08:04:46 25 4
gpt4 key购买 nike

假设我在循环中创建 JPA 查询:

for(A elem : collection) {
emanager.createQuery("update A a set a.x=:y where a.id=:id")
.setParameter("id",elem.id)
.setParameter(":y", 123)
.executeUpdate();
}

我可以重用返回的 Query 实例吗?

Query query = emanager.createQuery("update A a set a.x=:y where a.id=:id");
for(A elem : collection) {
query
.setParameter("id",elem.id)
.setParameter(":y", 123)
.executeUpdate();
}

它是否适用于 Query 的所有实例? NamedQueryNativeQuery 等当然,我说的是在同一个 EntityManager 中重用一个实例,即在同一个事务中

最佳答案

我尝试了完全相同的事情,在循环内执行相同的查询(更新),并且在第二次执行时出现“数据不匹配”。所以我将 createQuery 放在循环中,它工作正常。不完全是我所期望的。我会说它不是 JPQL - 它是一个 NamedNativeQuery。

关于java - EntityManager 返回的 JPA 查询对象是否可重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11228590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com