2012-12-16 23 views
6

Uygulama yönetilen varlık yöneticilerini kullanmak için cam balıklarını nasıl yapılandırabilirim? Aşağıda verilen konfigürasyonda aşağıdaki hatayı alıyorum.Uygulama yönetilen varlık yöneticilerini kullanmak için cam balıklarını nasıl yapılandırabilirim?

Ben sadece kalıcılık biriminde, RESOURCE_LOCAL ortamda değil, JTA ile bahar yönetilen işlemler kullanmak istiyorum, işlemleri yönetmek glassfish istemiyoruz

SEVERE: Exception while preparing the app : The persistence-context-ref-name [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean/entityManager] .... resolves to a persistence unit called [spring-jpa] which is of type RESOURCE_LOCAL. Only persistence units with transaction type JTA can be used as a container managed entity manager. Please verify your application. 

Benim konfigürasyon,:

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 
    <persistence-unit name="spring-jpa" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <non-jta-data-source>mysql/mydb</non-jta-data-source> 
    <properties/> 
    </persistence-unit> 
</persistence> 

Benim Uygulama içeriği:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:p="http://www.springframework.org/schema/p" 
     xmlns:aop="http://www.springframework.org/schema/aop" 
     xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:jpa="http://www.springframework.org/schema/data/jpa" 
    xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd 
     http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"> 

    <context:component-scan base-package="com.myproject"/> 
    <jpa:repositories base-package="com.myproject"/> 
    <tx:annotation-driven transaction-manager="transactionManager"/> 
    <bean id="dataSource" 
     //.... 
    </bean>  
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="dataSource" ref="dataSource"/> 
     <property name="persistenceUnitName" value="spring-jpa" /> 
     <property name="jpaVendorAdapter"> 
      <!-- <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">--> 
       <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
       <property name="showSql" value="true" /> 
       <property name="generateDdl" value="true" /> 
       <property name="database" value="MYSQL" /> 
       <property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"/> 
      </bean> 
     </property> 
    </bean> 


<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

</beans> 

cevap

2

this forum post buldum, alıntı : Java EE ortamında

, bu eleman [işlem tipi] spesifik fi ed değilse, varsayılan JTA olduğunu. Bir Java SE ortamında, bu öğesinde belirtilmemişse, bir RESOURCE_LOCAL değeri varsayılan olarak kabul edilebilir.

Yani, yapılandırma denemede:

<persistence-unit name="spring-jpa" transaction-type="JTA"> 
İlgili konular