4

我有一个带有 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 属性来说明创建脚本的名称。这里有类似的方法吗?

谢谢您的帮助

4

1 回答 1

7

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

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

如果您使用的是 JPA,则generateDdl需要在JpaVendorAdapter

于 2009-12-22T09:43:27.650 回答