I am using Spring -Data-JPA 1.0.3.RELEASE to manage my ORM.
my persistence.xml looks like this:
<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 is as follows
<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>
my OrderRepo interface looks like this:
@Transactional(readOnly = true) public interface OrderRepository extends JpaRepository<Order, Long> {
and I use it like this in my service class
@Autowired private OrderRepository repository;
But it looks like websphere doesn't like it that way, and gives me this error:
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;
the only ressource found for this problem indicates errors in previous versions of Spring -Data-JPA that are flagged as currently fixed or errors using incorrect dependencies in jQuery Spring -data-commons: however: I leave this to maven, so the version data-commons should be beautiful. I also found that spring JPA data requires the implementation of JPA 2.0, so I checked the openJPA version on the websphere server, and that’s fine.
Any ideas what could be causing this?