gpt4 book ai didi

java - 我的 native 查询和 JPQL(JPA) 结果的差异

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:32 28 4
gpt4 key购买 nike

我的本​​机查询是(这是有效的):

Update XXX SET preDeck=deck, deck=deck+1 WHERE ...

原生查询的结果是:deck=1 and preDeck=0(这就是我想要的)

但在 JPQL 中它不会发生:

UPDATE XXX SET preDeck=deck, deck=deck+1 WHERE ...

结果是:deck=1 和 predeck=1 也是

解决方案是什么?

RGDS

最佳答案

有趣的问题。为您的 JPQL 查询生成的 SQL 是什么?您使用哪种 JPA 引擎?

无论如何,解决方案是在使用 JPA 时避免更新查询,尤其是在要更新的实体数量较少的情况下。查询实体,更新它们的状态,然后让 JPA 为您刷新更改。

如果必须更新大量实体,您仍然可以使用 native 查询而不是 JPQL 查询。或者您可以使用两个查询:一个设置 preDeck,另一个设置 deck 为 preDeck + 1。

关于java - 我的 native 查询和 JPQL(JPA) 结果的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8635424/

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