繁体   English   中英

OpenJPA 脏读提示

[英]OpenJPA dirty read hint

我们有以下 DAO 堆栈:

  • DB2 9.7 Express-C
  • OpenJPA 2.0.1
  • Spring 3.0.5
  • 比特尼克斯 2.1.1

如何指定 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM