# Hibernate - Update bestimmter Spalten



## y0dA (5. Jun 2007)

Hi!

Bsp: Ich lese aus Tabelle A die Spalten a,b,c und d (es existieren aber noch weitere Spalten wie bspw. x,y und z).

Nun lade ich mir die Daten aus der Tabelle (aber nur die Spalten die ich brauche also a,b und c).
Ändere ich die Werte und danach möchte ich updaten - wie gehe ich vor?
Denn wenn ich nun folgendes mache

Code:
session.saveOrUpdate(model);dann werden bei mir momentan auch alle anderen Felder in dem Model (beinhaltet alle Spalten, repräsentiert die Tabelle) geupdatet und in dem Fall auf NULL gesetzt -.-

Nun habe ich gesehen dass ich in den hbm.xml bei den property "update=false" setzen kann, jedoch muss es da ja noch eine bessere Möglichkeit geben?

Ich hoffe ich habe mich verständlich ausgedrückt.

mfg


----------



## semi (5. Jun 2007)

EntityManager#createNativeQuery(...)   OK, ein Scherz. 

Du arbeitest bei JPA mit Objekten, nicht auf Attributebene. Lade einfach die Entity und setze die entsprechenden
Attribute. Sind es solche, die nur beim Einfügen, einmalig gesetzt, anschliessend aber nie geändert werden, dann
kannst du bei diesen updatable=false einstellen (die nicht updatable Felder werden nicht mal im Update Statement 
generiert). Noch eine Möglichkeit ist Vererbung. Das wäre hier aber mit Kanonen auf Spatzen schiessen.


----------



## y0dA (6. Jun 2007)

Hi!

Ok danke, dann hatte ich wohl den Hibernate-Gedanken fehlinterpretiert. Werde nun wohl alle Spalten lesen müssen. Betreffend "update=false" macht ja nur Sinn bei Spalten welche wirklich nicht angerührt werden sollten - dies ist aber nur bspw. beim primary key der Fall (in meinem Bsp).

Danke jedenfalls.

mfg


----------

