2010-10-08 24 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