JPA (EclipseLink 2.4) では、NativeQuery でスキーマ名を指定する必要があります。
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>
確かにどこかから実行時にスキーマ名を取得する方法が必要ですか?