JSF AutoIncrement on MySQL Table

NoXiD

Bekanntes Mitglied
Hallo, hab folgendes Problem:

Ich speichere einen neuen Customer per EntityManager in meine db. Diese db hat ein autoincrement auf ein non-id feld nämlich "nummer". Soweit funktioniert alles, mein Customer wird gespeichert und in der Datenbank wird im Hintergrund die "nummer" gesetzt. Das Problem ist, dass ich beim gespeicherten Wert (also bei der add Funktion) den gespeicherten Customer zurückgebe. Dieser hat aber noch keine "nummer" gesetzt, da as AutoIncrement der MySQL db (anscheinend) erst dann zieht, wenn die Transaktion abgeschlossen ist.

Wenn ich jetzt diesen Customer erneut speichere, versucht er ein Update zu machen und meckert über den null-Wert von "nummer". Funktionieren tut es aber, wenn ich in der Bean direkt nach dem Speichern den Customer neu lade, also:
Java:
Customer cust = customerService.add(new Customer(...));  //hier ist noch keine "nummer" vorhanden
cust = customerService.findCustomerById(cust.getId());     //hier bekomme ich den zuvor gespeicherten Customer per id und mit einer "nummer", da dies eine neue Transaktion ist.

weiß da jemand Rat?
 
Zuletzt bearbeitet:

Ähnliche Java Themen


Oben