Frage

Ist es möglich, @GeneratedValue für eine ID in dem Ruhezustand zu umgehen, haben wir einen Fall, wo die meiste Zeit wir die ID wollen gesetzt werden mit GeneratedValue, aber in bestimmten Fällen möchte die ID manuell eingestellt werden.

Ist das möglich zu tun?

War es hilfreich?

Lösung

Ich weiß, dass Sie dies in der Spezifikation JPA tun können, so sollten Sie in der Lage sein, in dem Ruhezustand (JPA + Annotationen verwenden).

Wenn Sie nur in dem ID-Feld des neuen persistenten Modell füllen Sie erstellen, dann, wenn Sie „Merge“, dieses Modell in den EntityManager, wird die ID, die Sie festgelegt haben, verwendet werden.

Das tut Auswirkungen haben, though. Sie haben gerade diese ID verwendet, aber die durch die GeneratedValue Anmerkung angegebenen Reihenfolge nicht weiß, dass. Sofern Sie eine ununsed ID sind spezifiziert, die als die aktuelle Sequenzwert LESS ist, Sie gehen ein Problem zu bekommen, sobald die Sequenz auf den Wert aufholt Sie gerade verwendet wird.

Also, vielleicht kann ich sehen, wo Sie der Benutzer eine ID, in der Lage sein könnten angeben, aber dann müssen Sie die mögliche Ausnahme (doppelte ID) fangen, die in Zukunft kommen können.

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