获取JPA中的命名查询字符串

Pra*_*nth 4 java oracle jpa

我试图在orm.xml文件中外部化JPA的所有命名查询.我想在我的Java程序中获取命名查询字符串用于某些操作目的,但JPA似乎没有公开任何将命名查询作为字符串返回的方法.我所能做的就是createNamedQuery使用命名查询的名称.

有没有其他方法来解决这个问题,以获得像Hibernate公开的命名查询字符串?与getSession().getNamedQuery("namedQueryName");JPA 类似?

谢谢,Sonu.

axt*_*avt 13

如果您确实需要,您可以始终通过JPA访问特定unwrap()于提供程序的类(在JPA 2.0中,或在以前的版本中使用向下转换):

String s = em.createNamedQuery("...")
    .unwrap(org.hibernate.Query.class)
    .getQueryString();
Run Code Online (Sandbox Code Playgroud)