H2数据库在内存中 - 通过Spring / Hibernate的Init模式

时间:2009-12-22 09:27:07

标签: java hibernate spring orm h2

我有一个带H2数据库的Spring / Hibernate应用程序,我在配置H2以嵌入模式(在内存中)运行时遇到一些问题:

1.我希望spring启动H2数据库,因此我创建了以下Spring bean:

<bean id="org.h2.tools.Server" class="org.h2.tools.Server"
        factory-method="createTcpServer" init-method="start" destroy-method="stop">
        <constructor-arg value="-tcp,-tcpAllowOthers,true,-tcpPort,8043" />
    </bean>

    <bean id="org.h2.tools.Server-WebServer" class="org.h2.tools.Server"
        factory-method="createWebServer" init-method="start">
        <constructor-arg value="-web,-webAllowOthers,true,-webPort,8082" />
    </bean>

我是否需要使用tcp服务器进行内存使用?这是内存中的正确配置吗?

2.使用上述配置 - 如何在Hibernate启动之前创建和初始化数据库模式? 我知道HSQLDB有一个URL属性,它声明了创建脚本的名称。这里有类似的方式吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:7)

Hibernate有一个名为schemaUpdate的属性。将其设置在SessionFactory上,以便在初始化时创建数据库。

<property name="schemaUpdate" value="true" />

如果您使用的是JPA,那么generateDdl

上会设置一个JpaVendorAdapter属性