Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:java_hibernate

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

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website. Weitere Information
"Autor: Gunther Pipperr"
prog/java_hibernate.txt · Zuletzt geändert: 2013/04/11 10:48 von gpipperr