Frage

Ich versuche, ein neues Java-Objekt zu bestehen, das eine automatisch generierte ID hat, aber es wird nicht besiedelt, wenn sie die persist () -Methode von EntityManager bezeichnet. Ich habe in meiner Objektklasse ..

...
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
...

Und ich beharrte es im Wesentlichen mit ...

emf = Persistence.createEntityManagerFactory("transactions-optional");
em = emf.createEntityManager();
em.persist(myObj);

Nach dem Durchhalten ist das ID -Feld nicht besiedelt. Ich habe versucht, em.flush () anzurufen, aber es beschwert sich, dass es sich in einer Transaktion befinden muss. Ich brauche oder möchte keine Transaktionen, aber ich brauche diese ID unmittelbar nach der Beherrschung des Objekts.

Ist dies ein Fehler in der Implementierung von JPA durch GAE?

Alle Vorschläge wären sehr geschätzt!

War es hilfreich?

Lösung

Ich kann bestätigen, dass das Aufrufen von EM.Refresh (Objekt) die ID des persistierten Objekts bevölkert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top