(eclipse,hibernate) table non modifiée après appels jpa
salut,
j'ai créé un programme J2SE qui fait des appels JPA en écriture et en lecture.
mais si les résultats sont bons, la base de données (mysql) n'est pas modifiée...
donc après mes appels la table est détruite.
savez-vous comment éviter ça?
quelques documents:
le fichier de l'entity:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| @Entity
public class Persone implements Serializable {
@Id
private int Numero;
private String Nom;
private static final long serialVersionUID = 1L;
public Persone() {
super();
}
public int getNumero() {
return this.Numero;
}
public void setNumero(int Numero) {
this.Numero = Numero;
}
public String getNom() {
return this.Nom;
}
public void setNom(String Nom) {
this.Nom = Nom;
}
} |
le fichier de main:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa_avec_hib");
EntityManager em = factory.createEntityManager();
Persone a=new Persone();
//a.setNumero(0);
a.setNom("durant");
em.persist(a);
em.getTransaction().begin();
em.flush();
em.getTransaction().commit();
Persone b=em.find(Persone.class, 0);
System.out.println(b.getNumero()+" / "+b.getNom());
em.close();
}
} |
et mon persistence.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <?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="jpa_avec_hib" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- <jta-data-source>java:/DefaultDS</jta-data-source>-->
<class>Persone</class>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.password" value="password"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jbossdb"/>
<property name="hibernate.connection.username" value="lolveley"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<!-- <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect "/> -->
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
</persistence> |
A vous...
olivier.
une des property d'Hibernate
La propriété
Code:
<property name="hibernate.hbm2ddl.auto" value="create"/>
,dans ton persistence.xml, recrée à chaque fois toute la structure de ta base données et au passage toutes les tables sont vidées. A ta place j'utiliserais:
Code:
<property name="hibernate.hbm2ddl.auto" value="update"/>