gpt4 book ai didi

database - 我们可以将自定义查询提示分配给 JPA NamedQueries

转载 作者:太空狗 更新时间:2023-10-30 01:52:51 24 4
gpt4 key购买 nike

我们需要为应用程序执行的每个查询附加查询编号。

例如:SELECT * FROM ... WHERE ... QUERYNO 123456;

OpenJPA 支持查询提示,但仅针对特定实现的特定提示。

...
Query q = em.createQuery("select m from Magazine m where ... ");
q.setHint("openjpa.hint.OptimizeResultCount", new Integer(2));
q.setHint("openjpa.FetchPlan.ReadLockMode","WRITE");
List r = q.getResultList();
...

但根据 JPA 规范和 openjpa“忽略无效提示或特定数据库无法处理的提示。否则,无效提示将导致抛出 ArgumentException。”所以指定“QUERYNO”作为提示似乎没有任何影响。

如何创建自定义查询提示以在运行时指定?

...Query q = em.createQuery("select m from Magazine m where ... ");q.setHint("com.me.CustomQueryNoHint", new Integer(2234)); list r = q.getResultList();...

最佳答案

specifying "QUERYNO" as a hint seems to have no impact.

正确。根据您引用的文档,“QUERYNO”是无效提示,因此将被忽略。该文档有些令人困惑,但我相信是否可以解释为支持您观察到的行为。 :-)

How do I create a custom Query Hint to specify at runtime?

这是一项艰巨的任务。我不认为 OpenJPA 旨在允许编写自定义查询提示。

我想了更多关于您想要将特定字符串附加到每个 SQL 的实际问题,我认为这在 OpenJPA 中不是很容易做到。或许您可以为您的 JDBC 驱动程序编写一个包装器并将您的字符串附加到每个 SQL?

关于database - 我们可以将自定义查询提示分配给 JPA NamedQueries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4124873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com