2010-02-11 157 views
2

我們有用於將模塊的實體和邏輯定義爲可重用JAR的通用模塊(用於配置,安全性,通知等)。唯一強制的依賴關係是JPA實體映射到的表的名稱(我們使用JPA批註是可能的,Hibernate批註是JPA沒有定義的)。如何重映射JPA實體或將映射推遲到以後的點

有沒有辦法將JPA實體重新映射到不同的表(理想情況下,應用程序會更改表名前綴以符合應用程序的表前綴名稱)?我們不能使用MappedSuperClass註解,因爲HQL使用實體名稱,我們的DAO在實體上生成。

回答

1

您可以讓每個應用程序都提供它自己的orm.xml文件,並在其中包含適當的表映射,並將JPA註釋用於其他任何內容。

orm.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<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 http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" 
    version="1.0"> 

    <entity class="com.mydomain.Customer"> 
    <table name="PROD1_CUSTOMER"/> 
    </entity> 

</entity-mappings> 
+0

好極了!這正是我所需要的。 – 2010-02-13 11:51:38