2017-01-25 8 views
0

JUnitテストを実行中にエンティティを自動検出する方法を見つけようとしています。これは、生成されたエンティティクラスが、私のpersistence.xmlと同じアーカイブにある場合にのみ可能です。junitテストでエンティティを自動検出する方法 "java.lang.IllegalArgumentException:Unknown entity:..."

src/test/resources/META-INFにある私のJUnitテスト用に異なるpersistenceTESTE.xmlファイルとapplicationContextTESTE.xmlファイルがありますが、両方のファイルでいくつかの異なる設定を試みましたが、何も動作せず、 "java.lang.IllegalArgumentException:不明なエンティティ:... "。

のsrc /テスト/リソース/ META-INF/ApplicationContextの-TESTE.xml:

<context:component-scan base-package="model.*" /> 
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="persistenceXmlLocation" value="META-INF/persistenceTESTE.xml" /> 
    <!-- As defined in /src/test/resources/META-INF/persistenceTESTE.xml --> 
    <property name="persistenceUnitName" value="mfspuTESTE" /> 
    <property name="packagesToScan"> 
     <array> 
      <value>model.finance</value> 
     </array> 
    </property> 
</bean> 
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 
<tx:annotation-driven /> 

のsrc /テスト/リソース/ META-INF/persistenceTESTE.xml:

<persistence-unit name="mfspuTESTE" transaction-type="RESOURCE_LOCAL"> 

    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
<!--  <class>model.finance.Sale</class> --> 
    <properties> 

     <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbc.JDBCDriver" /> 
     <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:hsql://localhost/mfsdbUTeste" /> 
     <property name="javax.persistence.jdbc.user" value="sa" /> 
     <property name="javax.persistence.jdbc.password" value="" /> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" /> 
     <property name="connection.pool_size" value="2"/> 
     <property name="show_sql" value="true"/> 

     <property name="hibernate.hbm2ddl.auto" value="create-drop" /> 
    </properties> 

</persistence-unit> 

重要! persistenceTESTE.xmlの場所をsrc/test/resources/META-INF /からsrc/main/resources/META-INF/

に変更するとうまくいきます

私に最も興味をそそられることは、テストクラスから見ることができますが、persistence.xmlの場所をtest/resources/META-INFに変更するとエンティティを自動検出できません。

答えて

関連する問題