ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
810
810
EMPFEHLEN
-
21.10.07 20:48 #1
- Registriert seit
- May 2004
- Beiträge
- 684
Hallo,
ich habe eine Frage bezüglich Datenbanken und Hibernate:
Nehmen wir an, ich möchte mit Hibernate ein Objekt in der Datenbank persistent machen. Ein Objekt entspricht ja einem Datensatz in einer Tablle - gibt es in Hibernate eine Funktionalität, mit der ich das Objekt nur dann in die Tabelle schreibe, wenn ein entsprechender Datensatz noch nicht vorhanden ist? Wenn er schon vorhanden ist, möchte ich nur die entsprechende id (den Primärschlüssel) des Objektes gesetzt bekommen.
Damit würde ich gerne verhindern, dass viele doppelte Datensätze in der Tabelle landen.
Ist das möglich?
Danke!
-
Hallo,
wenn ich dich richtig verstanden hab möchtest du es so haben, dass wenn du ein befülltes Object hast und es in der Datenbank gibt es ein Object mit den gleichen Werten, dann soll das Object nicht mehr selbst abgespeichert werden, sondern einfach die ID in dein Object eingetragen werden, oder?
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
22.10.07 08:25 #3
- Registriert seit
- May 2004
- Beiträge
- 684
Ja genau, Du hast es richtig beschrieben. Damit möchte ich verhindern, dass viele doppelte Datensätze, die sich nur in ihrem (technischen) Primärschlüssel unterscheiden, in der Tabelle stehen.
Ohne Hibernate würde man ja so vorgehen:
1. Prüfe per SQL SELECT, ob die zu speichernden Daten schon in der Tabelle stehen, und ermittlte gegebenenfalls die entsprechende id (Primärschlüssel) des vorhandenen Datensatzes.
2. Da von einer anderen Tabelle aus auf die Daten per FK verwiesen wird, setze entweder die zuvor ermittelte id ein, oder die neue id, die daraus entstanden ist, dass ein neuer Datensatz in der 1. Tabelle angelegt wurde.
Die Frage ist eben, kann man das in Hibernate automatisieren? Gibts da irgendein "Flag", eine Konstante, die man beim Persistieren angeben kann, damit Hibernate zuvor prüft, ob die Daten schon in der Tabelle vorhanden sind?
Danke!Geändert von DarthShader (22.10.07 um 08:27 Uhr)
-
Soweit ich weiß, ist das von Hibernate aus nicht möglich.
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
Ähnliche Themen
-
[MySQL] Datensatz eintragen, wenn nicht vorhanden
Von Steusi im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 03.11.10, 15:18 -
Datensatz löschen, wenn in einer anderen Tabelle nicht vorhanden
Von port29 im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 15.08.10, 03:16 -
INSERT aber nur wenn Datensatz noch nicht vorhanden ist.
Von mafin im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 17.12.08, 10:41 -
Element in Array einfügen, wenn noch nicht vorhanden
Von kampfspatz im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 1Letzter Beitrag: 29.09.04, 14:04 -
neuen ordner anlegen, wenn noch nicht vorhanden
Von vyanna im Forum PHPAntworten: 4Letzter Beitrag: 19.07.04, 13:02





Zitieren

Login





