2010-10-08 5 views
5

J'utilise un HSQLDB pour une application qui stocke des données de recherche et il y a beaucoup de données. HSQLDB insiste pour toujours charger les tables en mémoire. J'ai essayé de résoudre ce problème en définissant hsqldb.default_table_type = en cache dans mon fichier persistence.xml mais cela ne fonctionne pas.HSQLDB mange toute ma mémoire

Est-ce le mauvais endroit?

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> 

Quand ma base de données HSQLDB est créé, je peux voir dans ses propriétés fichier:

hsqldb.default_table_type=memory 

Merci

Répondre

5

Pourriez-vous essayer de mettre la hsqldb.default_table_type=cached dans la chaîne de connexion ? Comme ceci: jdbc:hsqldb:./myDvhDb;hsqldb.default_table_type=cached

+0

J'ai fini par utiliser la propriété hibernate.connection.hsqldb.default_table_type, mais je suppose que c'est ce que vous vouliez dire pour que vous obteniez du crédit :) – willcodejavaforfood

+0

@willcodejavaforfood Merci :) –