[hibernate-users] Hibernate 3.5 + JPA + HSQLDB embedded (or in process)

Amirouche BOUBEKKI amirouche.boubekki at gmail.com
Thu Apr 15 19:30:51 EDT 2010


Héllo,

I have some troubles getting hibernate 3.5 working properly with HSQLDB (in
process mode), I got same issues with SQLite [1] but everything works as
excepted with mysql.
I'm new to hibernate and all this java art so forgive me if I make big
errors.

The problem is each time I start my app which creates and populates serveral
table, the next run the db seems empty, and I have to fill it again.

I've setup a project using the 3.5 version of hibernate using JPA/EJB. I've
setup a persistence unit (thanks to netbeans) automatically generating the
presistence.xml needed for the emf setup

persistence.xml

<code>

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="PMMPU2" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>model.Extrait</class>
    <class>model.Mot</class>
    <class>model.Prefixe</class>
    <class>model.Suffixe</class>
    <class>model.Texte</class>
    <properties>
      <property name="hibernate.connection.username" value="SA"/>
      <property name="hibernate.connection.driver_class"
value="org.hsqldb.jdbcDriver"/>
      <property name="hibernate.connection.password" value=""/>
      <property name="hibernate.connection.url"
value="jdbc:hsqldb:file:db/base;shutdown=true"/>
      <property name="hibernate.cache.provider_class"
value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>
  </persistence-unit>
</persistence>

</code> http://java.pastebin.com/LFfB0gSt

I have also a HibernateUtil which helps me with emf & em:

<code>

public class HibernateUtil {

    private static EntityManagerFactory emf = null;
    private static EntityManager em = null;

    public static EntityManagerFactory getEmf()
    {
        if(emf == null)
        {
                        Map<String, Object> configOverrides = new
HashMap<String, Object>();
          //  configOverrides.put("hibernate.hbm2ddl.auto", "update");
            configOverrides.put("hibernate.show_sql", "true");
            emf = Persistence.createEntityManagerFactory("PMMPU2",
configOverrides);

        }
            return emf;
    }

    public static EntityManager getEm()
    {
        if(em == null)
            em = getEmf().createEntityManager();
        return em;
    }

}

</code> http://java.pastebin.com/kvyxruH0

1) As you can see I overdrive some settings getEMF.
2) How should a use EM instances; one for all the app, is that different on
desktop & web ?
3) How could I change HSQLDB options with hibernate to use CACHED tables by
default ?

[1] sqliteJDBC http://www.zentus.com/sqlitejdbc/ + hibernate-sqlite
http://code.google.com/p/hibernate-sqlite/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hibernate-users/attachments/20100416/ed63997f/attachment-0001.html 


More information about the hibernate-users mailing list