@Id @GeneratedValue, aber legen Sie einen eigenen ID-Wert fest
Ich habe eine Tabelle mit einer generierten id, aber in einigen Fällen möchte ich es auf meinem eigenen. Kann ich irgendwie erzwingen, Hibernate, ignorieren Sie die @GeneratedValue?
InformationsquelleAutor der Frage woezelmann | 2010-01-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann es ein overkill-aber haben Sie sich schon Gedanken über das schreiben Ihrer eigenen CustomIDGenerator die wahrscheinlich Unterklassen sagen, der AutoGenerator von hibernate und stellt eine Reihe von Methoden, wo Sie können die id der nächsten Klasse, die Objekt erzeugt werden, so zum Beispiel
Dies könnte kompliziert werden, aber zumindest ist möglich, da pro hibernate doco
InformationsquelleAutor der Antwort Kannan Ekanath
Obwohl diese Frage wurde schon eine ganze Weile her, ich fand die perfekte Antwort für Sie in dieser Beitrag von @lOranger, und wollte zu teilen.
Diesen Vorschlag überprüft, ob das Objekt die aktuelle id ist etwas anderes als
null
und wenn ja, verwendet er es, andernfalls erzeugt es mit Hilfe der Standard - (oder konfiguriert) generation-Strategie.Es ist einfach, geradlinig und befasst sich mit der Frage gebracht durch @Jens, der man nicht in der Lage, zum abrufen des Objekts der aktuellen id.
Ich nur implementiert, die es (durch die Verlängerung der UUIDGenerator), und es funktioniert wie ein Charme 😀
InformationsquelleAutor der Antwort ahpoblete
Nutzen Sie Fall, können Sie manuell fügen Sie diese keine Benutzer.
Eine Möglichkeit besteht darin, die insert-operation auf eine Datei namens "./import.sql" (in deinem classpath).
Ruhezustand gehen wird, diese Anweisungen auszuführen, wenn die SessionFactory ist gestartet.
InformationsquelleAutor der Antwort Emmanuel Bernard
erstellen Sie Ihre eigenen identifiergenerator/sequencegenerator
ändern Sie Ihre Entität als:
und beim speichern anstatt
persist()
verwendenmerge()
oderupdate()
InformationsquelleAutor der Antwort rakesh