私たちは、春には、プロパティファイルから$ {}式を置き換えることができ、このapplicationContextPersistence.ctx.xml
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceXmlLocation"
value="classpath:META-INF/persistence-${env}.xml" />
<!-- .. -->
</bean>
ことによってそれを解決しました。
私たちは、その後、持続-dev.xmlファイルなどの特定のORM-dev.xmlファイルを備えてい:ORM-dev.xmlファイルは、現在のエンティティのマッピングを担当して
<?xml version="1.0" encoding="UTF-8"?>
<persistence
version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="fooUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<mapping-file>META-INF/orm-dev.xml</mapping-file>
</persistence-unit>
<!-- .. -->
</persistence>
を:
<?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">
<description> XML Mapping file</description>
<package>foo.server.model</package>
<entity class="AnotherEntity">
<table schema="testschema2" name="anothertable" />
<attributes>
<!-- .. -->
</attributes>
</entity>
</entity-mappings>
最後に、AnotherEntity POJOからマッピング注釈を削除しました。これは、orm-dev.xmlファイルを介してマップされています。他のenitityクラスは注釈を保持していました。
注:EclipseのSpring Tool Suiteのフレーバーを使用します。このIDEはpersistence.xmlを期待しているので、エラーメッセージを取り除くために、最小限のpersistence.xmlにバリデータを無効にするIDEオプションを覚えておく必要がないようにしました。
出典
2016-09-29 13:01:50
mvw