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

Lin*_*Lin 4 java orm spring hibernate 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>
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢您的帮助

Boz*_*zho 7

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

<property name="schemaUpdate" value="true" />
Run Code Online (Sandbox Code Playgroud)

如果您正在使用JPA,那么有一个generateDdl属性将被设置在JpaVendorAdapter

  • 我有一些我不希望hibernate做的事情,所以我想要一个特定的脚本.我最终使用的(当我不能使用脚本时)是 - <prop key ="hibernate.hbm2ddl.auto">创建</ prop>感谢您的帮助 (2认同)