2010-10-08 91 views
5

我对存储研究数据的应用程序使用HSQLDB,并且有相当多的数据。 HSQLDB坚持始终将表加载到内存中。我试着通过在我的persistence.xml中设置hsqldb.default_table_type = cached来解决这个问题,但这不起作用。HSQLDB正在吃掉我所有的内存

这是错误的地方?

的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> 

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

hsqldb.default_table_type=memory 

感谢

回答

5

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

+0

我结束了使用hibernate.connection.hsqldb.default_table_type属性,但我想这就是你的意思,所以你得到的信用:) – willcodejavaforfood 2010-10-08 10:30:49

+0

@willcodejavaforfood谢谢:) – 2010-10-08 10:31:29