J'utilise Spring-Data-JPA 1.0.3.RELEASE pour gérer mon ORM.printemps données JPA en utilisant les retours d'injection "NoSuchMethodError"
mon persistence.xml ressemble à ceci:
<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 ressemble à ce
<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>
mon interface OrderRepo ressemble à ceci:
@Transactional(readOnly = true)
public interface OrderRepository extends JpaRepository<Order, Long> {
//my stuff
}
et je l'utilise comme ceci dans ma classe de service
@Autowired
private OrderRepository repository;
Mais il ressemble à websphere dosn't comme autant et me donne cette erreur:
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;
la seule ressource que j'ai trouvé en ce qui concerne ce problème signale des erreurs dans les versions précédentes Spring-Data-JPA qui sont marqués comme fixes maintenant ou des erreurs utilisant de mauvaises dépendances au jar spring-data-commons - cependant: je laisse cela à maven donc la version de data-commons devrait être bien. J'ai aussi trouvé que les données de printemps JPA a besoin d'une implémentation JPA 2.0 donc j'ai vérifié la version openJPA sur le serveur websphere et ça va.
Toutes les idées ce qui pourrait être la cause?
vous êtes tout à fait raison. J'ai utilisé javax.persistence à la version 1.0.2 (dernière version?) avec l'objectif de compilation, donc je n'ai eu aucune erreur au moment de la compilation. Je suis passé à l'implémentation de la persistance openjpa 2.0 maintenant et à l'objectif "fourni", puisqu'il est de toute façon sur le serveur websphere. – masi
dépendance: l'arbre a révélé une dépendance en utilisant JPA 1. Excluant cela a résolu mon problème. Merci d'avoir répondu. –