bonjour,
j'ai une base HSQL que j'arrive à modifier via un programme java classique du style :
Class.forName("org.hsqldb.jdbcDriver").newInstance();
Connection connexion = DriverManager.getConnection("jdbc:hsqldb:file:C:\\ma base hsql db\\ma_base", "sa", "");
Statement statement = connexion.createStatement();
statement.executeQuery("update customer set firstname='aaaaaaaaaaa' where id=0");
statement.executeQuery("SHUTDOWN");
statement.close();
connexion.close()
après exécuté le code j'ouvre le fichier ma_base.script qui est bien modifié.
je cherche à obtenir le même résultat avec hibernate avec le code :
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction();
Customer contact = new Customer();
contact.setFirstname("Firstname de test");
contact.setCity("City de test");
contact.setLastname("Lastname de test");
contact.setStreet("Street de test");
session.save(contact);
System.out.println("test save");
tx.commit();
je ne trouve pas ce nouvel élément dans ma_base.script. En revanche l'élément est bien quelque part car je le vois avec hibernate si je fais ensuite une itération sur les éléments de la table.
j'ai donc l'impression que les données sont donc en mémoire mais ne persistent pas dans ma base HSQLDB.
voici mon hibernate.cfg.xml j'ai: (en particulier dans l'url j'ai bien file)
<property name="hibernate.connection.url">
jdbc:hsqldb:file:C://ma base hsql db//ma_base
</property>
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver
</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password" />
<property name="dialect">net.sf.hibernate.dialect.HSQLDialect
</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.use_outer_join">true</property>
<property name="hibernate.transaction.factory_class">
net.sf.hibernate.transaction.JDBCTransactionFactory
</property>
<mapping resource="Customer.hbm" />
est ce que vous pouvez m'aider?
Partager