在创建spring hibernate sessionfactory之后插入数据库

时间:2013-01-06 06:26:13

标签: java database spring-3 sessionfactory hibernate-4.x

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

我有一个CUSTOMER表,如果Customer不存在,我想在此表中插入特定的Customer

这是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,如果调度程序在任何用户点击应用程序之前执行,那么调度程序将找不到需要插入的数据。

任何指针对我都非常有用。

1 个答案:

答案 0 :(得分:1)

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