我需要锁定表行以供其他事务读取。方法如果事务 1 读取表 1 的记录很少。事务 2 不应读取这些行
我有以下环境1. 我的数据库2. Jboss 5.13. JPA 1.0
请让我知道您的建议
我正在使用本机查询选择进行更新Query createNativeQuery = entityManager.createNativeQuery("select id from cscache where id = ?对于更新");
但它给出了以下错误
2014-12-12 09:35:42,326 错误 [org.hibernate.util.JDBCExceptionReporter ] 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的"限制 2"附近使用的正确语法 (http-0.0.0.0-8543-5:)
你可以这样使用。
锁定表tbl_name读取;
欲了解更多详情,请点击这里
选择更新应该可以解决问题。
YourClass c = em.find(YourClass.class, yourId,
LockModeType.PESSIMISTIC_WRITE);
或
TypedQuery<Table> q = em.createQuery("select t from Table t where ...", Table.class);
q.setLockMode(LockModeType.PESSIMISTIC_WRITE);