2012-08-29 154 views
2

這是一個有點隨訪我剛纔的問題 Spring and Hibernate - changing dialect春天 - 設置屬性值從JNDI

例如,如果我有這一塊的.xml

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> 
    <property name="persistenceUnitName" value="SpringMVCTest" /> 
    <property name="jpaProperties"> 
     <props> 
      <prop key="hibernate.dialect" > 

      </prop> 
     </props> 
    </property> 
</bean> 

現在,我想成立hibernate.dialect至於由jndi公開的值爲jdbc/dialect,但是當我放入<jee:jndi-lookup jndi-name="jdbc/MyDataSource"/>時,我得到了Invalid content was found starting with element 'jee:jndi-lookup'. No child element is expected at this,所以我懷疑我不能在prop中放置任何標籤。

那麼,有沒有什麼辦法可以將jndi資源插入到這個屬性?

回答

2

不能完全肯定,但你應該能夠在這裏使用Spring-EL,像這樣:

<jee:jndi-lookup id="dialect" jndi-name="..." /> 


<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> 
    <property name="persistenceUnitName" value="SpringMVCTest" /> 
    <property name="jpaProperties"> 
     <props> 
      <prop key="hibernate.dialect" >#{dialect}</prop> 
     </props> 
    </property> 
</bean>