0

所以就到这里了。。

我在我的 glassfish 服务器中配置了两个 jndi 用于通信两个不同的数据库。在我的 applicationContext.xml 中我有以下配置

 <!-- Database connection 1 STARTS HERE-->
<jee:jndi-lookup id="JNDI1" jndi-name="jdbc/db1"/>
    <bean id="sessionFactory"
            class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="JNDI1" />
<!--        <property name="annotatedClasses">
            <list>
                <value>com.test.db1.Person</value>  //THIS WORKS FINE
            </list>
        </property>-->
        <property name="packagesToScan" value="com.test.db1" /> //THIS IS STRANGE
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.connection.autocommit">false</prop>
            </props>
        </property>
    </bean>
   <!-- Database connection 1 ENDS HERE-->



    <!-- Database connection 2 STARTS HERE-->
    <jee:jndi-lookup id="JNDI2" jndi-name="jdbc/db2" />
    <bean id="sessionFactory2"
          class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="JNDI2" />
       <property name="packagesToScan" value="com.test.db2" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.connection.autocommit">false</prop>
            </props>
        </property>
    </bean>
 <!-- Database connection 2 ENDS HERE-->

在包中com.test.db1我只有Person类,在包中我有两个名为和com.test.db2的实体。EmployeeCompany

当我在两个 SessionFactory bean 中使用packageToScan属性时,会出现问题,所有 3 个表都是在两个数据库中创建的。当我使用annotatedClasses显式定义实体类时,会在 jndi 中配置的相关数据库中生成属性表。我不明白为什么这种我在使用packageToScan时得到的结果。
如果有人可以详细解释我,我将不胜感激。

谢谢

4

0 回答 0