2014-03-19 3 views
1

내가 사용하는 스프링 스프링-datasource.xml의 엔티티 관리자 팩토리를 얻는 방법에 혼란스러워지고 있어요 사용
나는 다음과 같은 한 :봄 엔티티 관리자 공장은 JNDI

봄-datasource.xml 파일 :

<tx:jta-transaction-manager id="transactionManager" /> 
<tx:annotation-driven mode="proxy" 
transaction-manager="transactionManager" /> 

<jee:jndi-lookup id="entityManagerFactory" jndi-name="jdbc/mysqldatasource" /> 

의 persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.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_2_0.xsd"> 
<persistence-unit name="ebankingUnit" 
    transaction-type="JTA"> 
    <jta-data-source>jdbc/mysqldatasource</jta-data-source> 
    <class>com.datamodel.Product</class> 

    <properties> 
     <property name="eclipselink.logging.level" value="INFO" /> 
     <property name="eclipselink.query-results-cache.expiry" 
      value="5000" /> 
     <property name="eclipselink.ddl-generation" value="create-tables" /> 
     <property name="hibernate.hbm2ddl.auto" value="none" /> 
    </properties> 
</persistence-unit> 

그러나 나는 thid를 얻고있다

답변

0

어떤 버전의 Spring을 사용하고 있습니까? 최신 버전에서는 persistence.xml이 필요하지 않습니다.

다음은 oracle 용 Spring 3.x를 사용한 구성입니다.

<tx:annotation-driven/> 

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

<!-- FactoryBean that creates the EntityManagerFactory --> 
<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="jpaVendorAdapter"> 
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
      <property name="database" value="ORACLE" /> 
      <property name="showSql" value="false" /> 
     </bean> 
    </property> 
    <property name="packagesToScan" value="blah.com..domain" /> 
    <property name="jpaProperties"> 
     <props> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.format_sql">true</prop> 
     </props> 
    </property> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 


<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="java:comp/env/myoracledb}" /> 
</bean> 

이제 '당신이 도움을 web.xml에

 <Resource name="myoracledb" auth="Container" 
     type="javax.sql.DataSource" 
     driverClassName="oracle.jdbc.OracleDriver" 
     maxActive="50" 
      url="your db url" 
      username="dbuser" password="dbpwd" /> 

감사에

+0

안녕 덕분에 myoracledb의 JNDI 자원을 정의,하지만 난 돈 웹 로직 데이터 소스에서 JNDI를 사용하려는 JTA – raccio

+0

weblogic에서 Jndi 리소스를 만들고 데이터 소스에서 jndi 이름 참조를 사용하면 어떤 차이가 있다고 생각합니다. –