Update-Problem mit Hibernate-Framework

Status
Nicht offen für weitere Antworten.

OWiesbrock

Mitglied
Tach,
für Leute die sich schon ein wenig mit dem Hibernate-Framework auseinandergesetzt haben habe ich eine schöne kleine Anfrage:
Ich habe mir durch Hibernate mit Daten aus einer MySQL-DB ein entsprechendes Objekt erschaffen. Dieses Objekt enthält wiederum Sets mit weiteren Objekten, die DB-Tabellen entsprechen. Ich habe nun Daten des ersten Objekts geändert und möchte diese nun in der DB aktualisieren. Dazu rufe ich saveOrUpdate(Object o) aus dem Framework auf (Session und Transaction sind natürlich geöffnet).
Alle Daten des ersten Objekts, die nicht in den Sets enthalten sind, werden durch ein erstes Update problemlos aktualisiert, wenn Hibernate nun jedoch beginnt die Sets auszulesen und SQL-Strings zu erstellen sieht der Output etwa so aus:
update projekt_ma set ma_id=null where ma_id=?
Die ma_id ist die MitarbeiterID und ist Teilschlüssel der Tabelle projekt_ma. Kann mir einer vielleicht erklären warum Hibernate versucht diese ID auf null zu setzten? Noch besser wäre es wenn mir einer einen Lösungsvorschlag anbieten könnte.

Danke
OWiesbrock
 

Bleiglanz

Gesperrter Benutzer
hast du dein Mapping

Set im Objekt ===== Fremdschlüssel in der DB

auch richtig im der Mapping Datei eingetragen?
Die ma_id ist die MitarbeiterID und ist Teilschlüssel der Tabelle projekt_ma. Kann mir einer vielleicht erklären warum Hibernate versucht diese ID auf null zu setzten? Noch besser wäre es wenn mir einer einen Lösungsvorschlag anbieten könnte.
ohne Kenntnis der Datenbankstruktur (Relationen), deiner Klasse und der MappingDatei unmöglich
 
G

Guest

Gast
Das Mapping-File sieht an entsprechender Stelle so aus:
<set name="projekte" table="projekt_ma" lazy="true" inverse="false">
<key column="ma_id" />
<one-to-many class="de.fourthproject.controlling.hibernate.ProjektMa" />
</set>

und bei ProjektMA sieht es so aus:
<class name="ProjektMa" table="projekt_ma">
<composite-id name="id" class="ProjektMaKey">
<key-many-to-one name="mitarbeiter" column="ma_id" class="Mitarbeiter"/>
<key-many-to-one name="projekt" column="proj_id" class="Projekt"/>
</composite-id>

<property name="status" column="status" type="java.lang.String" />
</class>

Wie müsste ich dass denn jetzt verändern?
 

Bleiglanz

Gesperrter Benutzer
Die ma_id ist die MitarbeiterID und ist Teilschlüssel der Tabelle projekt_ma.
Also ist ma_id ein Fremdschlüssel? Und gleichzeitig Teil des Primärschlüssels? Was soll mit "Teilschlüssel der Tabelle" gemeint sein?

Wenn sich dein Set verändert hat, wird Hibernate versuchen, die "fehlenden" zugeordneten projek_ma's durch null-Setzen des Fremschlüssels auf der projekt_ma Seite zu löschen, deswegen das update kommando

Hast du das Set vor dem update verändert?
 

OWiesbrock

Mitglied
Ja ma_id kommt aus der Tabelle Mitarbeiter und ist Fremdschlüssel und gleichzeitig ein Teil des primärschlüssel von Projekt_ma. Die Sets die ich habe, besitzen alle bisher in der DB vorhandenen Einträge (ggf. um einen Wert geändert, aber definitv nicht der PK), sowie ggf neue Einträge.
 

Bleiglanz

Gesperrter Benutzer
hmm, habe nochmal neu nachgedacht

>> update projekt_ma set ma_id=null where ma_id=?

klingt eher so, als ob das Zielobjekt gelöscht wurde und Hibernate die fehlenden Referenzen NULLen möchte, hatt dein Objekt o bei

saveOrUpdate(o)

wirklich einen bestehenden gültigen PK?

kann mich leider nicht weiter damit befassen (One-2-Manys sind beim OR-Mapping eh schon kompliziert; dazu noch ein Foreign-Key als Teil des Primärschlüssels [kann nicht NULL werden!] - da bräuchte ich ein paar Stunden dafür :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Hibernate & hsqldb: Problem bei db-update Datenbankprogrammierung 7
W Hibernate Update Problem Datenbankprogrammierung 3
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
cosmic Problem beim Update einer Oracle DB Datenbankprogrammierung 7
T Problem beim Update in die Access DB Datenbankprogrammierung 9
S Update Problem Datenbankprogrammierung 3
T Problem beim Update vom Resultset + Firebird Datenbankprogrammierung 2
L Problem mit Update Datenbankprogrammierung 14
G Problem mit Datums-Format bei UPDATE Datenbankprogrammierung 3
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
OnDemand Select vs Update ins blaue, was ist teurer? Datenbankprogrammierung 11
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
M SQL-Statement SQL mit Java, Update Fehler Datenbankprogrammierung 1
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
OnDemand SQL-Statement Update mit innerjoin Datenbankprogrammierung 18
OnDemand Update table SET will nicht Datenbankprogrammierung 9
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
S Update Tabelle aus Textfeld Datenbankprogrammierung 2
S JPA: update von Schlüsselwerten Datenbankprogrammierung 2
ruutaiokwu sql server werte swappen beim update-vorgang mit unique-constraints..? Datenbankprogrammierung 2
M Update Befehl Datenbankprogrammierung 1
S MySQL Nach wiederholtem Update falsche Werte (im Speicher?) Datenbankprogrammierung 1
M SQL-Statement Datentypen in Kriterienausdruck unverdräglich bei Update auf DB von Java aus Datenbankprogrammierung 0
M SQL UPDATE richtig anwenden BITTE um HILFE Datenbankprogrammierung 3
M SQL UPDATE führt zu JAVA Absturz Datenbankprogrammierung 6
S HSQLDB Verbieten eines update auf eine bestimmte reihe Datenbankprogrammierung 4
M Derby/JavaDB Neu geschriebener Eintrag per UPDATE lässt sich nicht unmittelbar abrufen Datenbankprogrammierung 2
S UPDATE user Datenbankprogrammierung 4
R Fehler 2601 trotz SQL-UPDATE ? Datenbankprogrammierung 2
B DB Update via batch Datenbankprogrammierung 3
H Update ganze zeile Datenbankprogrammierung 4
R sqlite UPDATE wirkt nicht aus Java Datenbankprogrammierung 7
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
D Error 1452: Cannot add or update a child row: a foreign key constraint fails Datenbankprogrammierung 15
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
5 Datenbank Update Datenbankprogrammierung 8
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
turmaline Oracle "Häppchenweises" Update durchführen Datenbankprogrammierung 4
D ArrayIndexOutOfBoundsException bei Update von JTable und Model Datenbankprogrammierung 13
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
I Derby/JavaDB Update Fehler Datenbankprogrammierung 4
N Update Prepared Statement Fehler bei Argumenten Datenbankprogrammierung 3
N batch-Update wird nicht durchgeführt Datenbankprogrammierung 2
1 On duplicate Key update Datenbankprogrammierung 3
M DB update geht einfach nicht Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
G MySQL Update Datenbankprogrammierung 5
M MySQL größere von zwei Zahlen in Update Statement Datenbankprogrammierung 2
T Update an SQL Tabelle ?! Datenbankprogrammierung 10
C MySQL Update funktioniert nicht Datenbankprogrammierung 11
C Update Table1 mit Relationship Table2 Datenbankprogrammierung 6
prakdi einzelnen SQL Eintrag finden der "update" enthält Datenbankprogrammierung 3
V Datenbank Update Datenbankprogrammierung 7
A update methode für datenbank Datenbankprogrammierung 2
M Hibernate: Insert statt Update Datenbankprogrammierung 8
E Update DB; Werte aus Feldern übernehmen Datenbankprogrammierung 5
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
H Datenbank Update Datenbankprogrammierung 3
J SQL Abfrage: Verschiedene Werte in einer Spalte mit einem Update Befehl? Datenbankprogrammierung 7
M Update mysql Fehler ?? Datenbankprogrammierung 4
R Update Time auslesen Datenbankprogrammierung 2
T DB2 delete/update über 2 Tabellen Datenbankprogrammierung 2
K Ist mein UPDATE fehlerhaft? Datenbankprogrammierung 3
G Update-Befehl Fehlerhaft ?? Datenbankprogrammierung 2
G Update Befehl funkt nicht. WARUM? Datenbankprogrammierung 5
M Insert Update usw. Datenbankprogrammierung 2
S CashedRowSet update - oder was mache ich falsch - Datenbankprogrammierung 6
B [SQL] UPDATE oder REPLACE INTO Befehl Datenbankprogrammierung 10
S Update mit null Datenbankprogrammierung 11
H UPDATE . Datenbankprogrammierung 3
S PostgreSQL SELECT/UPDATE etc. Datenbankprogrammierung 4
T Update-Frage Datenbankprogrammierung 11
Y Hibernate - Update bestimmter Spalten Datenbankprogrammierung 2
G update sperren bei client/server anwendung Datenbankprogrammierung 7
T Diverse JDBC Probleme (inner join, rs.last(), update) Datenbankprogrammierung 2
B Update funktioniert nicht Datenbankprogrammierung 8
R Update und Insert Gleichzeitig? Datenbankprogrammierung 2
K MsAccess immer beim zweiten Update java.sql.SQLException Datenbankprogrammierung 28
G Update Statement automatisch unterteilen lassen Datenbankprogrammierung 3
G ist hieran was falsch ? UPDATE Anweisung Datenbankprogrammierung 8
A Syntaxfehler bei update. Datenbankprogrammierung 8
L UPDATE löst Exception aus Datenbankprogrammierung 6
F Update mit Prepared Statements Datenbankprogrammierung 10
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
C Problem mit Apache Poi Datenbankprogrammierung 6
N HSQLDB Problem mit Eclipselink in runnable Jar Datenbankprogrammierung 10
P GroupLayout-Problem Datenbankprogrammierung 12
F XAMPP max connections problem Datenbankprogrammierung 6
C MySQL Problem in phpMyAdmin Oberfläche Datenbankprogrammierung 5
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
C Problem with insertion in database. Datenbankprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben