选择更新不起作用

高拉夫·卡特卡姆瓦尔(Gaurav Katkamwar)

我的以下本机查询无法正常工作:

Query createNativeQuery = entityManager.createNativeQuery(
   "select id from cscache where id=? for update ");

环境详细信息:

  1. 的MySQL 5.6
  2. Jboss 5.1
  3. JPA 1.0

错误:

2014-12-12 10:20:14,581警告[org.hibernate.util.JDBCExceptionReporter]

SQL错误:1064,SQLState:42000(http-0.0.0.0-8543-3 :)

2014-12-12 10:20:14,581错误[org.hibernate.util.JDBCExceptionReporter]您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“限制2”附近使用(http-0.0.0.0-8543-3 :)

布拉德利菲茨

我实际上没有在休眠状态下进行更新,但是我相信您可以(并且应该?)在Session或查询对象上进行更新。为什么不让冬眠做它而不是执行本机查询呢?根据有关锁定的文档(第5章:锁定),您可以在会话或查询上设置锁定模式。

Cscache  cscache  = (Cscache )session.get( Cscache.class, id, LockOptions.UPGRADE );

指定LockOptions应该导致执行SELECT ... FOR UPDATE。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章