Wie effizient die automatisch generierte ID für ein neues Objekt, um herauszufinden, wenn JPA verwenden?
-
30-09-2019 - |
Frage
Ich habe ein Attribut, das mit @Id bezeichnet ist. Die ID wird automatisch generiert werden, wenn das Objekt persistierenden. Das bedeutet, dass der ID-Wert nicht definiert ist, bevor ich das Objekt bestehen bleiben. Nachdem es persistierenden, sie hat eine ID (in der Datenbank), aber leider bleibt das Feld immer noch null, solange ich sie nachladen nicht aus der DB. Gibt es eine einfache Möglichkeit, die erzeugte ID, um herauszufinden? Oder besser: zu konfigurieren, dass sie in das Feld geschrieben werden
Vielen Dank im Voraus
Lösung
Die ID wird nach dem Flush zugeordnet. Unter der Annahme der Foo
Einheit hat ein id
Attribut mit den Standard-@Id @GeneratedValue
Anmerkungen kommentiert, der folgenden Code funktioniert:
Foo foo = new Foo();
//...
em.persist(foo);
em.flush();
assert foo.getId() != null;