在JPA(2.4的EclipseLink)我需要NativeQuery指定架构名称:获取JPA数据库架构名称(从EntityManager的/ EntityManagerFactory的)
EntityManager em = emf.createEntityManager();
Query query = em.createNativeQuery("select foo from bar.table");
以上的作品,但很明显,我不喜欢硬编码架构名称,特别是考虑到我已经在orm.xml中指定了它的事实:
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_2_0.xsd"
version="2.0">
<persistence-unit-metadata>
<persistence-unit-defaults>
<schema>bar</schema>
</persistence-unit-defaults>
</persistence-unit-metadata>
</entity-mappings>
当然,必须有办法从某处获取运行时的架构名称?
谢谢。虽然有点尴尬,但以下似乎工作:em.unwrap(Session.class).getLogin()。getTabl eQualifier() – maximdim 2013-03-12 11:20:52