我正在使用JPA/HIbernate和Spring進行持久性和事務管理的項目。此應用程序具有從同一數據庫服務器(Sybase環境)的幾個目錄和模式映射的表。如何重用persistence.xml中的類聲明?
爲了開始創建一種使用內存數據庫這個程序的自動化測試,我不得不創建一個替代test-persistence.xml
列出所有相同的實體從默認persistence.xml
,但指定覆蓋從架構信息替代orm.xml
映射文件類中的註釋。
在我的Spring配置文件的關鍵部分的測試是這樣的:
<bean id="hsqlFixes" class="com.example.app.util.HSQLFixes" />
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
depends-on="hsqlFixes">
<property name="persistenceUnitName" value="puName" />
<property name="persistenceXmlLocation"
value="META-INF/persistence-tests.xml" />
....
</bean>
哪裏HSQLFixes
是執行一些JDBC語句只是創造一些類型的bean。
而在persistence-tests.xml
:
<persistence-unit name="puName" transaction-type="RESOURCE_LOCAL">
<mapping-file>META-INF/orm-tests-db1.xml</mapping-file>
<mapping-file>META-INF/orm-tests-db2.xml</mapping-file>
<mapping-file>META-INF/orm-tests-db3.xml</mapping-file>
... followed by the same list of entities from persistence.xml
現在,我想在persistence.xml
和test-persistence.xml
擺脫類上市複製的,因爲我覺得我可以自動執行此第二個文件的生成。
我該如何動態地做到這一點,以便在添加/刪除實體時不需要更改這兩個XML文件?
您使用的是Maven嗎? –
這是一個遺留項目,我被困在Ant中。 – elias