gpt4 book ai didi

java - 如何强制 Hibernate 在更新查询中使用 AND?

转载 作者:太空宇宙 更新时间:2023-11-04 09:50:26 24 4
gpt4 key购买 nike

我正在尝试使用 hibernate 更新复合主键的原始数据。

Hibernate 使用下一个样式进行此类更新:

update mytable set mycolumn=321 where (left_pk, right_pk) = (123, 456);

是否可以强制 hibernate 使用下一个样式?:

update mytable set mycolumn=321 where left_pk = 123 and right_pk = 456;

两个查询都可以工作,但有巨大的差异(至少在 MariaDB 中)。
如果我们使用可重复读取事务,则第一个查询将锁定整个表以进行更新,第二个查询将仅锁定单行以进行更新。

我更愿意只锁定一行,因此我需要使用第二个查询。

最佳答案

您可以在 Hibernate 中使用 NamedQueries 方法,例如:

 //Create Query 
@NamedQueries({ @NamedQuery(name = " YOUR QUERY NAME",
query = "from DeptEmployee where department = :department and emp = :emp") })


// set multiple parameters
query.setParameter("department",department)
.setParameter("emp", emp)

尝试一下。

关于java - 如何强制 Hibernate 在更新查询中使用 AND?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54832038/

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