Note that there are some explanatory texts on larger screens.

plurals
  1. POCan't persist my objects
    primarykey
    data
    text
    <p>here's is the problem <br/></p> <p>I have a java class Agence that has a <code>@ManytoOne</code> relationship with my class Reseau .</p> <p>there is my Agence code :</p> <pre><code>package ma.kafil.bank; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToOne; @Entity public class Agence implements Serializable{ private int idAgence; private String labelle; private Reseau reseau; public Agence(String labelle) { this.labelle = labelle; } public Agence() { } @ManyToOne public Reseau getReseau() { return reseau; } public void setReseau(Reseau reseau) { this.reseau = reseau; } @Id @GeneratedValue public int getIdAgence() { return idAgence; } public void setIdAgence(int idAgence) { this.idAgence = idAgence; } public String getLabelle() { return labelle; } public void setLabelle(String labelle) { this.labelle = labelle; } } </code></pre> <p>and my Reseau Class :</p> <pre><code> package ma.kafil.bank; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; @Entity public class Reseau implements Serializable{ private int idReseau; private String Libelle; private ArrayList&lt;Agence&gt; Agences = new ArrayList(); //Constructor without arguments public Reseau() { } public Reseau(String Libelle) { this.Libelle = Libelle; } public void ajouterAgence(Agence a){ Agences.add(a); } @Id @GeneratedValue public int getIdReseau() { return idReseau; } public void setIdReseau(int idReseau) { this.idReseau = idReseau; } public String getLibelle() { return Libelle; } public void setLibelle(String Libelle) { this.Libelle = Libelle; } @OneToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE}, mappedBy="reseau") public Collection&lt;Agence&gt; getAgences() { return Agences; } public void setAgences(ArrayList&lt;Agence&gt; Agences) { this.Agences = Agences; } public void addAgence(Agence a){ this.Agences.add(a); } } </code></pre> <p>And Finally the main class : </p> <pre><code>package ma.kafil.bank; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; public class Main { public static void main(String [] args){ //Creating Entity Manager //persistence-unit name="test" EntityManagerFactory emf = Persistence.createEntityManagerFactory("test"); EntityManager em = emf.createEntityManager(); //beginning the transaction em.getTransaction().begin(); //Creating a new Reseau r with r.labbelle = "Centre" and r.id=1 Reseau r = new Reseau("Centre"); r.setIdReseau(1); //Creating a new Agence a Agence a = new Agence("Nom Agence"); a.setIdAgence(2); //adding a to my Reseau (What's the problem with that ?? ) r.addAgence(a); em.persist(r); a.setIdAgence(1990); a.setReseau(r); em.persist(a); em.getTransaction().commit(); //closing em and emf em.close(); emf.close(); } } </code></pre> <p>Here is the stack trace :</p> <pre><code>Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: ma.kafil.bank.Reseau at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637) at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:226) at ma.kafil.bank.Main.main(Main.java:30) Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: ma.kafil.bank.Reseau at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:79) at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38) at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618) at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592) at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596) at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:220) ... 1 more Java Result: 1 </code></pre> <p>And here is persistence.xml :</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;persistence version="2.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_2_0.xsd"&gt; &lt;persistence-unit name="test" transaction-type="RESOURCE_LOCAL"&gt; &lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt; &lt;class&gt; ma.kafil.bank.Agence&lt;/class&gt; &lt;class&gt; ma.kafil.bank.Reseau&lt;/class&gt; &lt;properties&gt; &lt;property name="hibernate.connection.username" value="root"/&gt; &lt;property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/&gt; &lt;property name="hibernate.connection.password" value=""/&gt; &lt;property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/awbawards"/&gt; &lt;property name="hibernate.hbm2ddl.auto" value="update"/&gt; &lt;/properties&gt; &lt;/persistence-unit&gt; &lt;/persistence&gt; </code></pre> <h1>Thanks in Advance</h1>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload