0

我想在SessionFactory创建 spring hibernate 之后在数据库表中插入一些数据。

我有一个表,如果不存在CUSTOMER,我想在该表中插入一个特定的。CustomerCustomer

这是以下配置SessionFactory

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
    <property name="packagesToScan" value="com.edfx.adb.persist.entity" />
    <property name="entityInterceptor" ref="entityInterceptor" />
</bean>

我知道有一个选项hibernate.hbm2ddl.import_files,我们可以从中提及一个 sql 文件,并且查询将在SessionFactory初始化时执行。但我不想走这条路。

我也发现我们可以ServletContextListener用于这种目的,但我不确定这是实现我想要的好方法。因为我的理解是在部署war文件后,当第一个用户点击应用程序时,监听器将被初始化。因此,如果我有一个运行的调度程序,Customer并且如果调度程序在任何用户点击应用程序之前执行,那么调度程序就不会找到需要插入的数据。

任何指针都会对我很有帮助。

4

1 回答 1

1

您可以根据需要扩展org.springframework.orm.hibernate4.LocalSessionFactoryBean和覆盖方法。buildSessionFactory()

于 2013-01-06T06:38:15.997 回答