HSQLDB正在吃掉我所有的记忆

wil*_*ood 5 java jpa hsqldb

我正在将HSQLDB用于存储研究数据的应用程序,并且存在大量数据.HSQLDB坚持始终将表加载到内存中.我试过通过在我的persistence.xml中设置hsqldb.default_table_type = cached来解决这个问题,但这不起作用.

这是错误的地方吗?

persistence.xml中

<persistence-unit name="Dvh DB" transaction-type="RESOURCE_LOCAL">
    <class>com.willcodejavaforfood.dvh.entity.Patient</class>
    <class>com.willcodejavaforfood.dvh.entity.Plan</class>
    <class>com.willcodejavaforfood.dvh.entity.Dvh</class>
    <class>com.willcodejavaforfood.dvh.entity.ImportSession</class>
    <class>com.willcodejavaforfood.dvh.entity.Project</class>
    <class>com.willcodejavaforfood.dvh.entity.Course</class>
    <class>com.willcodejavaforfood.dvh.entity.Property</class>
    <properties>
        <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:./myDvhDb"/>
        <property name="javax.persistence.jdbc.user" value="sa"/>
        <property name="javax.persistence.jdbc.password" value=""/>
        <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
        <property name="hibernate.hbm2ddl.auto" value="create-drop" />
        <property name="hsqldb.default_table_type" value="cached" />
    </properties>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)

创建我的HSQLDB数据库后,我可以在其属性文件中看到:

hsqldb.default_table_type=memory
Run Code Online (Sandbox Code Playgroud)

谢谢

Pet*_*hev 5

你能尝试把hsqldb.default_table_type=cached连接字符串放进去吗?像这样:jdbc:hsqldb:./myDvhDb;hsqldb.default_table_type=cached