Zum Inhalt springen

Problem mit ManyToMany Beziehung und Hibernate


Empfohlene Beiträge

Geschrieben

hi,

gibt es hier hibernate-spezialisten, die mir bei meinem problem weiterhelfen könnten??

also ich hab folgendes problem. ich hab eine klasse, welche eine liste enthält. diese liste kann wiederrum nur typen der gleichen klasse aufnehmen, also eine liste mit rekursiven objekten. ich hoff ich konnte das richtig beschreiben?

also die objekte werden korrekt in die datenbank gespeichert. mein problem ist nur diese beziehungstabelle. anstatt, daß er da nix macht, speichert er mir immer wieder bei jedem speichervorgang ein neuesn schlüsselpaar in der verknüpfungstabelle ab. die objekte selbst werden nicht verdoppelt. die konfiguration erfolgt über die annotations über den klassenvariablen. @JoinColumn wurde gesetzt, damit mir des alles nicht abstürzt, weil er natürlich eine Exception bringt, wenn er versucht das gleiche Schlüsselpaar 2mal in die Tabelle zu speichern. Ach ja..von dieser Abstracten klasse werde noch andere Klassen, wie z.B. Unternehmen, Gebäude usw abgeleitet. Diese werden dann in die Datenbank gespeichert und nicht die Basis...ach ihr versteht schon, wie ich meine oder?

hier is mal meine klasse..auszugsweise:

@Entity

@Table(name="basis")

@PrimaryKeyJoinColumn(name="id")

public abstract class Basis extends PersistableObject implements Serializable {

@ManyToMany (cascade=CascadeType.ALL)

@JoinColumn(unique=false)

@LazyCollection(value=LazyCollectionOption.FALSE)

@Cascade (value = org.hibernate.annotations.CascadeType.DELETE_ORPHAN)

private void List<Basis> listObjects = new ArrayList<Basis>();

/**

* @return the listObject

*/

public List<Basis> getListObject() {

return listObject;

}

/**

* @param listObject the listObject to set

*/

public void setListObject(List<Basis> listObject) {

this.listObject = listObject;

}

so ich lass das jetzt einfach mal stehen. ich hoff es kann mir jemand helfen? wäre echt sehr sehr dringend.

viele liebe grüße von mir

sascha

Geschrieben

Servus,

kannst Du mal den Codeausschnitt posten, der zeigt, wie Du ein solches Objekt abspeicherst? Und dann: ist das JPA oder pures Hibernate? Es sieht nach JPA aus, aber ich kenne auch die Standard Hibernate Annotations kaum. :)

Peter

Geschrieben

Hi und Servus,

danke für deine eventuelle Hilfe, aber das Problem lag ganz woanders. :). Schön langsam mag ich Hibernate wieder :).

Viele Grüße

Sascha

PS: Es ist ein Mischmasch aus JP-Annotations und Hibernate-Annotations, denn Hibernate erweitert die JP um vieles :).

Geschrieben

Hi,

das ist etwas schwieriger zu erklären.

Ich habe eine Datenstruktur "Basis" mit einer listeObjects, welche wiederrum "Basis"-Objekte enthält. Also im Endeffekt eine Liste mit rekursiven Objekten. Mein Problem war ja, daß er mir die Verknüpfungstabelle "BASIS_BASIS" immer wieder gefüllt hat, obwohl z.B. ein Basisobjekt bereits persistiert wurde.

Ich arbeite hier mit einem Baum. Dieser Baum hat als Grundlage eine Liste als Datenstruktir und im Baum selber hängen ja wiederrum Objekte. Jetzt wenn sich im Baum etwas geändert hat, dann wurde einfach das selektierte Objekt aus dem Baum genommen, geändert und gespeichert. Danach liefern mir meine Hibernate-Methoden ein Objekt zurück und dieses Objekt setze ich wieder in den Baum. Ich hatte nur vergessen, daß ich dieses Objekt nicht nur im Baum ersetzen muß, sondern auch in der Datenstruktur.

Ist ewas kompliziert zu erklären, wenn du den Sourcecode nicht kennst. Also kurz gesagt war es ein Refresh-Problem meinerseits. :o).

Ich hoff du konntest mit meiner Erklärung etwas anfangen?

Viele Grüße

Sascha

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...