저는 ORM을 관리하기 위해 Spring-Data-JPA 1.0.3.RELEASE를 사용하고 있습니다.스프링 데이터 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;
그러나 스피어만큼이 같은 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 버전의 오류를 지적를 이는 스프링 데이터 커먼즈 항아리에 대한 잘못된 종속성을 사용하여 오류로 표시됩니다. 그러나 나는 데이터 커먼스 버전이 좋을 수 있도록이를 남기고 있습니다. 또한 스프링 데이터 JPA는 JPA 2.0 구현이 필요하므로 websphere 서버에서 openJPA 버전을 확인 했으므로 괜찮습니다.
어떤 아이디어가 원인 일 수 있습니까?
을 확인하십시오. 나는 1.0.2 (최신 버전?)의 javax.persistence를 컴파일 목표와 함께 사용하여 컴파일시 오류가 없었습니다. 어쨌든 websphere 서버에 있기 때문에 지금 openjpa 2.0 지속성 구현과 목표 "제공"으로 전환했습니다. – masi
의존성 : 트리는 JPA 1을 사용하여 종속성을 나타냅니다.이 문제를 해결하면 내 문제가 해결됩니다. 답변 해주셔서 감사합니다. –