[英]OpenJPA dirty read hint
我们有以下 DAO 堆栈:
如何指定 OpenJPA 在查询末尾添加WITH UR
sql 子句?
我已经浏览了几天的网站和手册,应该是这样的:
Query q = em.createQuery("select m from Magazine m where ... ");
q.setHint("openjpa.FetchPlan.ReadLockMode","WRITE");
List r = q.getResultList();
但是,唉,我一直无法找到一个有效的 OpenJPA 属性,该属性将作为setHint()
参数传递并作为结果生成WITH UR
,因此我使用了 SpringJDBC 查询,遗憾的是我不能再使用了。
有任何想法吗? 非常感谢
OpenJPA 不支持将WITH UR
子句与 JPQL 一起使用。 您始终可以使用本机查询来实现此功能。
我现在有一个非常相似的问题 - 似乎设置:
query.setHint("openjpa.FetchPlan.Isolation", "READ_UNCOMMITTED");
会成功的。 不幸的是,源代码显示来自org.apache.openjpa.jdbc.sql.DB2Dictionary
的常量withURClause
永远不会被读取。
此外,如果查询不是FOR UPDATE
,OpenJPA永远不会考虑获取计划提示。 我有一个 select 语句,它在排他锁上被阻塞,它真的可以处理未提交的数据——OpenJPA 不行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.