Hi everyone, i have a client application (Batch) which accesses a self-written EJB Service (running on jboss AS 4.2.3). Through this EJB Service the client can retrieve Entities, and merge changes back to the DB. My Problem comes up when i try to use the EntityManager.merge() Method. Instead of overwriting the existing entity in the DB, it creates a new entry. Further iÃÂôve noticed that the old entry has Version-Column set to 1 and the new one has Version-Column set to 0.
I also tried to upgrade to the newest hibernate version but without success. Can anyone come up with a solution, how to use the merge method? I appreciate any help!!!! I've attached some of my sources: merge-method call in EJB Service-Class | @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) | public void updateDealer(Dealer dealer) { | em.merge(dealer); | em.flush(); | } | getEntity / getDealer Call in EJB Service Class | public Dealer getDealer(int agDealerCode) { | Dealer dealer = null; | | Query q = em.createQuery("From Dealer Where dealerNo = :dealerno"); | | q.setParameter("dealerno", agDealerCode); | | try { | dealer = (Dealer) q.getSingleResult(); | } catch (NoResultException nrEx) { | // do nothing just return null value; | } | return dealer; | } | Dealer Entity | package ch.hstService.client.model; | | import java.io.Serializable; | import java.util.ArrayList; | import java.util.Collection; | import java.util.HashSet; | import java.util.Set; | | import javax.persistence.CascadeType; | import javax.persistence.Column; | import javax.persistence.Entity; | import javax.persistence.FetchType; | import javax.persistence.GeneratedValue; | import javax.persistence.GenerationType; | import javax.persistence.Id; | import javax.persistence.JoinColumn; | import javax.persistence.OneToMany; | import javax.persistence.Table; | import javax.persistence.Version; | | @Entity | @Table(schema="HAENDLERSTAMM") | public class Dealer implements Serializable { | | /******** Properties *******/ | | @Id @GeneratedValue(strategy=GenerationType.SEQUENCE) | @Column(name="id_dealer") | private Long id = null; | | @Version | private Long version; | | | @Column(length=200) | private String dpName; | | @Column(length=50) | private String dealerType; | | @Column(name="market_name_official", length=200) | private String marketNameOfficial; | | @Column(name="owner_dpname", length=200) | private String ownerDpName; | | @Column(name="outlet_type_architectural", length=100) | private String outletTypeArchitectural; | | @Column(length=200) | private String name; | | @Column(name="additional_name", length=200) | private String additionalName; | | @Column(name="vat_number", length=20) | private String vatNumber; | | @Column(name="default_language", length=15) | private String defaultLanguage; | | private int dealerNo; | | @Column(length=200) | private String otherMakes; | | @OneToMany(cascade={CascadeType.ALL}, fetch=FetchType.EAGER ) | @JoinColumn(name="id_dealer",referencedColumnName = "id_dealer") | private Set<Address> addresses = new HashSet<Address>(); | | @OneToMany(cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REMOVE}, fetch=FetchType.EAGER) | @JoinColumn(name="id_dealer",referencedColumnName = "id_dealer") | private Set<Email> emails = new HashSet<Email>(); | | @OneToMany(cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REMOVE }, fetch=FetchType.EAGER) | @JoinColumn(name="id_dealer",referencedColumnName = "id_dealer") | private Set<Phone> phones = new HashSet<Phone>(); | | @OneToMany(mappedBy="dealer", cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REMOVE}, fetch=FetchType.EAGER) | @JoinColumn(name="id_dealer") | private Set<Contract> contracts = new HashSet<Contract>(); | | @OneToMany(cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REMOVE }, fetch=FetchType.EAGER) | @JoinColumn(name="id_dealer",referencedColumnName = "id_dealer") | private Set<URL> urls = new HashSet<URL>(); | | /******** Konstruktoren *******/ | | public Dealer() { //Paket-weiter Konstruktor | } | | | /******** Getter / Setter *******/ | } | View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4212585#4212585 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4212585 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user