私は自分のORMを管理するためにSpring-Data-JPA 1.0.3.RELEASEを使用しています。SpringデータJPAを使用して注入 "NoSuchMethodError"を返す
私のpersistence.xmlは次のようになります。
@Transactional(readOnly = true)
public interface OrderRepository extends JpaRepository<Order, Long> {
//my stuff
}
と私はそれを使用しています:
<persistence>
<persistence-unit name="default" transaction-type="JTA">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<jta-data-source>jdbc/myDataSource</jta-data-source>
<properties>
<property name="openjpa.TransactionMode" value="managed" />
<property name="openjpa.ConnectionFactoryMode" value="managed" />
<property name="openjpa.jdbc.DBDictionary" value="db2" />
</properties>
</persistence-unit>
</persistence>
ApplicationContextのが私のOrderRepoインターフェイスは次のようになります。この
<beans>
<context:annotation-config />
<bean id="myExceptionTranslator" class="org.springframework.orm.jpa.DefaultJpaDialect" />
<bean id="myEmf" class="javax.persistence.Persistence" factory-method="createEntityManagerFactory">
<constructor-arg type="java.lang.String" value="default" />
</bean>
<jpa:repositories base-package="model.repositories" />
<tx:annotation-driven transaction-manager="txManager" />
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
</beans>
のように見えますこのように私のサービスクラス内
@Autowired
private OrderRepository repository;
しかし、それは、WebSphereが同じくらいそれのようにdosn'tのように見えると私は、このエラーを与える:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'orderService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private model.repositories.OrderRepository model.service.OrderService.repository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'orderRepository': FactoryBean threw exception on object creation; nested exception is java.lang.NoSuchMethodError: javax/persistence/EntityManager.getMetamodel()Ljavax/persistence/metamodel/Metamodel;
この問題について私が見つけた唯一のressourceが前の春データ-JPAのバージョンでエラーを指摘これは現在では固定であるとマークされていますが、spring-data-commons jarに間違った依存関係を使ってエラーが発生しましたが、私はそれをmavenに残してデータ共有のバージョンを上手にします。また、私は春のデータJPAはJPA 2.0の実装が必要なので、私はwebsphereサーバー上のopenJPAバージョンを確認したので、それは問題ありません。
何が原因なのでしょうか?
をチェックしてください。コンパイル時にバージョン1.0.2(最新バージョン?)のjavax.persistenceを使用しましたので、コンパイル時にエラーが発生しませんでした。私はopenjpa 2.0の永続化の実装を今やWebsphereサーバー上にあるので、 "提供された"という目標に切り替えました。 – masi
依存関係:ツリーはJPA 1を使って依存関係を明らかにしました。これを除いて私の問題は解決しました。答えをありがとう。 –