在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