2016-10-20 16 views
3

私は、Beanで定義されたEntityManagerFactoryを使用してエンティティを永続化しようとしています。関数は次のようになります。Javax永続性エラー:不明なエンティティcom.samplewebentities.Customer

private BaseMasterEntity saveEntity(BaseMasterEntity entity){ 
    EntityManagerFactory emf = (EntityManagerFactory)context.getBean("entityManagerFactory"); 
    EntityManager sf = emf.createEntityManager(); 
    sf.getTransaction().begin(); 
    sf.persist(entity); 
    sf.getTransaction().commit(); 
    sf.close(); 
    return entity; 

} 

ここでの問題は、エンティティが見つからない場合です。エンティティには、javax.persistanceアノテーションで明確に定義された@Entityがあります。これは私のコンテキストファイルがところでどのように見えるかです:

<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> 
    <property name="url" value="*my jdbc setting*" /> 
    <property name="username" value="hr" /> 
    <property name="password" value="hr" /> 

</bean> 
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 
<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" /> 
    <property name="packagesToScan" 
    value="classpath*:com.samplewebentities"></property> 
    <property name="jpaProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> 
      <prop key="hibernate.hbm2ddl.auto">create</prop> 
      <prop key="hibernate.show_sql">true</prop> 
     </props> 

    </property> 
</bean> 

<bean id="hibernateJpaVendorAdapter" 
    class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> 
<tx:annotation-driven transaction-manager="transactionManager" /> 

それが助け場合は、*クラスパス:com.samplewebentitesが異なるコンポーネントである(アプリケーションは、多くの異なるコンポーネント/プロジェクトの組み合わせです:SCAを使用してここに)。

+0

の可能性のある重複した[JPA/Hibernateでのエンティティ自動登録する方法:不明なエンティティ](http://stackoverflow.com/questions/4939732/how-to-autoを-register-entities-with-jpa-hibernate-unknown-entity) –

+0

私はその質問を読んだことがあります。実際に彼はクラスを直接列挙しています。パッケージレベルの検索をしたいのです。 –

答えて

2

クラスパスの必要はありません

.. 
<property name="packagesToScan" 
    value="com.samplewebentities"></property> 
.. 
+1

ありがとう!解決済み! –

関連する問題