为了账号安全,请及时绑定邮箱和手机立即绑定

“立即更新”,Oracle,springframework,QuerySyntaxException

“立即更新”,Oracle,springframework,QuerySyntaxException

郎朗坤 2021-12-18 15:31:18
我正在使用实现从org.springframework.data.repository.CrudRepository和扩展的接口org.springframework.data.jpa.repository.JpaSpecificationExecutor我有一个org.springframework.data.jpa.repository.Query带有参数的查询的问题org.springframework.data.repository.query.Param我有这个查询..@Query(value = " SELECT c FROM Ctype c WHERE c.code = :code"        + " FOR UPDATE nowait ")Ctype findOneByCodeNoWait(        @Param("code") String code);我有这个错误:Caused by: java.lang.IllegalArgumentException: Validation failed for query for method public abstract org.company.persistence.entity.Ctype org.company.persist.repository.CtypeRepository.findOneByCodeNoWait(java.lang.String)!Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: FOR near line 1, column 111 [ SELECT c FROM org.company.persistence.entity.Ctype c WHERE c.code = :code FOR UPDATE nowait ]Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: FOR near line 1, column 111 [ SELECT c FROM org.company.persistence.entity.Ctype c WHERE c.code = :code FOR UPDATE nowait ]\"}}"我正在检查另一个帖子,但他们使用EntityManager...这个怎么解决?
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

试试这个方法:


@Lock(LockModeType.PESSIMISTIC_READ)

 @QueryHints(@QueryHint(name = "javax.persistence.lock.timeout",value = "0"))

 @Query(value = " SELECT c FROM Ctype c WHERE c.code = :code")


我已经用我正在进行的项目和这段代码对此进行了测试:


@Lock(LockModeType.PESSIMISTIC_READ)

@QueryHints(@QueryHint(name = "javax.persistence.lock.timeout",value = "0"))

@Query("select t from Event t left join fetch t.details ")

List<Event> findAllWithDetails();

`


生成 sql 如下:


SELECT event0_.event_id ...

FROM   EVENTS event0_ 

       left outer join event_details details1_ 

                    ON event0_.event_id = details1_.event_id 

FOR UPDATE NOWAIT


查看完整回答
反对 回复 2021-12-18
  • 1 回答
  • 0 关注
  • 189 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号