Spring数据JPA本机查询跳过锁定

编程入门 行业动态 更新时间:2024-10-28 14:35:41
本文介绍了Spring数据JPA本机查询跳过锁定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想使用Spring Data JPA在Oracle上执行SKIP LOCKED查询,所以我尝试了以下操作:

I want to execute a SKIP LOCKED query on Oracle using Spring Data JPA, so I tried the following:

@Lock(LockModeType.PESSIMISTIC_WRITE) @Query(value = "SELECT * FROM User WHERE ID=?1 FOR UPDATE SKIP LOCKED", nativeQuery = true) User findOne(UUID id);

我尝试了上述操作,发现生成的查询包含FOR UPDATE,但不包含SKIP LOCKED(以下是从日志生成的查询):

I tried the above and found that the generated query contains FOR UPDATE, but not SKIP LOCKED (below is the generated query from logs):

select ent0_.column1 as name, ent0_.CREATED_DATE as CREATED_2_33_0_ from TABLE_NAME alias_name where ent0_.column1=? for update

如果我从查询方法中删除@Lock,则生成的查询甚至没有FOR UPDATE.

If I remove @Lock from the query method, the generated query does not even have FOR UPDATE.

请根据需要建议如何使用FOR UPDATE SKIP LOCKED生成查询.

Please suggest how I can generate a query with FOR UPDATE SKIP LOCKED, as required.

推荐答案

添加:

@QueryHints({@ QueryHint(name ="javax.persistence.lock.timeout",值 =-2")})

@QueryHints({@QueryHint(name = "javax.persistence.lock.timeout", value ="-2")})

更多推荐

Spring数据JPA本机查询跳过锁定

本文发布于:2023-10-25 00:25:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1525415.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:本机   跳过   数据   Spring   JPA

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!