나는 영속성과 트랜잭션 관리를 위해 JPA/HIbernate와 Spring을 사용하는 프로젝트를 진행 중이다. 이 응용 프로그램에는 동일한 데이터베이스 서버 (Sybase 환경)의 여러 카탈로그 및 스키마에서 매핑 된 테이블이 있습니다. 메모리 데이터베이스를 사용하여이 응용 프로그램에 대한 자동화 된 테스트 생성을 시작하기 위해persistence.xml에서 클래스 선언을 재사용하는 방법은 무엇입니까?
, 나는의 스키마 정보를 무시 대안 orm.xml
매핑 파일을 기본 persistence.xml
에서 모두 동일한 개체를 나열하지만, 지정하는 다른 test-persistence.xml
을 만들어야했습니다 클래스의 주석.
시험에 대한 나의 봄 구성의 중요한 부분은 다음과 같이이다 :
HSQLFixes
<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>
그냥 몇 가지 유형을 만드는 몇 가지 JDBC 문을 실행하는 콩입니다.
그리고 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