prog:java_hibernate
Inhaltsverzeichnis
Ein Oracle Sequence für den Primary Key einer Tabelle in Hibernate definieren und verwenden
Ziel:
Für den Primary Key einer Tabelle soll das Sequence Objekt in der Oracle Datenbank verwendet werden.
Getestet in Hibernate 4.2.0
Vorbereitung - Hibernate konfigurieren
Setzen der Hibernate Property „hibernate.jdbc.use_get_generated_keys“
<property name="hibernate.jdbc.use_get_generated_keys">true</property>
Hibernate GenericGenerator Annotations
Mit @GenericGenerator können diverse Strategien für das Erzeugen einer Schlüssels umgesetzt werden.
siehe auch:
import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Parameter; import javax.persistence.GeneratedValue; @Entity @Table(name = "EMP") public class User { @GenericGenerator(name = "OraSeqGenerator", strategy = "sequence-identity", parameters = @Parameter(name = "sequence", value = "EMP_ID_SEQ")) @Id @GeneratedValue(generator = "OraSeqGenerator") private int empno; // get and set ... }
Fehler
Erhält man diesen Fehler, wurde zuvor die Hibernate Propertiy nicht gesetzt!
ERROR: HHH000099: an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session): org.hibernate.AssertionFailure: getGeneratedKeys() support is not enabled Exception in thread "main" org.hibernate.AssertionFailure: getGeneratedKeys() support is not enabled
siehe auf http://www.javadocexamples.com/org/hibernate/org.hibernate.AssertionFailure.html den Abschnitt:
if ( useGetGeneratedKeys && !factory.getSettings().isGetGeneratedKeysEnabled() ) { throw new AssertionFailure("getGeneratedKeys() support is not enabled"); }
Quellen
prog/java_hibernate.txt · Zuletzt geändert: 2013/04/11 10:48 von gpipperr