Hibernate Collection Mapping - Fehler beim Updaten der DB

geqoo

Bekanntes Mitglied
Hi,

Ich habe hier ein kleines Problem mit meinem Entity-Manager und hoffe mir kann hier jemand helfen.
Wenn ich zu meiner Collection ein paar Einträge hinzufüge/entferne so wird die Datenbank nicht geupdated.

Java:
@Entity
@Table(name = "Subprograms")
public class Subprogram implements IEntity, Serializable {

    @Id
    @GeneratedValue
    @Column(name = "id")
    private Long id;

    @OneToMany(mappedBy = "subprogram", fetch = FetchType.EAGER, orphanRemoval = true, cascade = CascadeType.ALL)
    private Set<SubprogramConfig> subprogramConfig = new HashSet<SubprogramConfig>();

    public Subprogram() {
    }

    @Override
    public Long getId() {
        return id;
    }

    @Override
    public void setId(Long id) {
        this.id = id;
    }

    public Set<SubprogramConfig> getSubprogramConfigSet() {
        return subprogramConfig;
    }

    public void setSubprogramConfigSet(Set<SubprogramConfig> SubprogramConfig) {
        this.subprogramConfig = subprogramConfig;
    }
}
Java:
@Entity
@Table(name = "Subprogram_config")
public class SubprogramConfig implements IEntity, Serializable {

    @Id
    @GeneratedValue
    @Column(name = "id")
    private Long id;

    @ManyToOne
    @JoinColumn(name = "fk_subprogram")
    private Subprogram subprogram;

    public SubprogramConfig() {
    }

    @Override
    public Long getId() {
        return id;
    }

    @Override
    public void setId(Long id) {
        this.id = id;
    }

    public Subprogram getSubprogram() {
        return subprogram;
    }

    public void setSubprogram(subprogram subprogram) {
        this.subprogram = subprogram;
    }

}
Und die Manager Klasse:
Java:
public static List<IEntity> executeUpdate(List<IEntity> entityList) {

    session.beginTransaction();

    entityList.forEach(entity -> {
        Object persistentObj = session.load(entity.getClass(), entity.getId());

        try {
            BeanUtils.copyProperties(persistentObj, entity);
        } catch (Exception e) {
            e.printStackTrace();
        }

        session.save(persistentObj);
    });

    session.getTransaction().commit();

    return entityList;
}
Der Transaction-Commit liefert mir dann folgenden Fehler:
Exception in thread "Thread-2" org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [main.java.controller.entities.SubprogramConfig#25]

Dazu zu sagen ist noch, dass ich eine Kopie der Entity erzeuge, wenn ich damit arbeite und genau dafür soll das copyProperties gut sein, damit das persistente Objekt von Hibernate die richtigen (neuen) Collection-Daten bekommt.
Kann mir da jemand weiter helfen?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand OneToMany löscht Eintrag aus Collection Data Tier 0
aze Hibernate Entfernen aus einer Collection soll zum Entfernen einer Beziehung führen Data Tier 3
L Hibernate: failed to lazily initialize a collection of role Data Tier 3
G Hibernate abfrage Collection Data Tier 3
M EJBQL: Item aus einer Collection(ManyToOne) löschen Data Tier 7
T NamedQuery => Whore Objekt in Collection Data Tier 3
A JPA Postgresql/JPA/EclipseLink - Mapping Fehler? Data Tier 7
OnDemand OneToMany Composite Key Mapping Data Tier 18
P Hibernate Mapping - Nur eine Spalte per Join aus anderer Tabelle holen Data Tier 5
R mapping-file für hibernate zum Überschreiben der Annotationen Data Tier 7
M Problem mit @Temporal Mapping und SQL Server Data Tier 3
H Hibernate - Mapping für Enumeration Data Tier 1
S (Hibernate) Mapping einer Datenbanktabelle mit mehreren Fremdschlüssel Data Tier 7
Kessi Hibernate Mapping-File vs. Annotations Data Tier 4
M Hibernate Mapping mal anders Data Tier 2
N Hibernate boolean mapping Data Tier 7
M JPA: Mapping von bestehender DB Data Tier 2
byte Hibernate: duplicate property mapping Data Tier 3
N Mapping einer 1:n in Hibernate Data Tier 11
F OR-Mapping Data Tier 4
T SQL Grammar Fehler Data Tier 3
J Fehler bei @OneToOne / JPA Data Tier 2
G Fehler im Hibernate Data Tier 4

Ähnliche Java Themen


Oben