【发布时间】:2011-08-07 23:24:45
【问题描述】:
我正在尝试将 JPA 的所有命名查询外部化到一个 orm.xml 文件中。为了某些操作目的,我想在我的 Java 程序中获取命名查询字符串,但 JPA 似乎没有公开任何将命名查询作为字符串返回的方法。我所能做的就是createNamedQuery 带有命名查询的名称。
有没有其他方法可以解决这个问题来获取命名查询字符串,比如 Hibernate 暴露?类似于 JPA 中的getSession().getNamedQuery("namedQueryName");?
谢谢, 索努。
【问题讨论】:
-
什么样的“操纵目的”?我看不出一个令人信服的理由来外部化字符串然后对其进行操作,而不是仅仅将名称传递给
createNamedQuery()。将字符串外部化以将 Java 代码与 JPQL 解耦不是重点吗?如果你试图解耦逻辑,对它执行字符串操作听起来更像是代码异味。