2

这是我之前的问题 Spring and Hibernate - changed dialect的一些后续

例如,如果我有这段 .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 by 公开的值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 资源插入此属性?

4

1 回答 1

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>
于 2012-08-29T16:52:16.210 回答