Hallo Forum,
Ich habe eine Oracle10g-Db mit 2 Tabellen und einem View,
der View hat einen Instead-of Trigger d.h. ich kann mit Hibernate
dort Werte einfügen wie in eine normale Tabelle.
Klappt auch alles wunderbar nur ist die Id
welche Hibernate nach dem Einfügen in den View zurück bekommt leider nicht die die in der DB steht.
Nachfolgend die Annotations für die ID-Spalte
@Column(name = "ID", nullable = false, unique=true)
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="HIB_SEQ")
@SequenceGenerator(name="HIB_SEQ",sequenceName="USERS_SEQ")
wobei USERS_SEQ der Name der Oracle-Sequence in der DB ist.
Ich vermute das Hibernate einen eigenen Sequencegenerator erzeugt, da
die zurückgegebene Id nicht den Werten der Sequence in der DB
entspricht. Also Sequence in DB hat den aktuellen Wert 17, die von
Hibernate erzeugte Id ist aber 700. Das Einfügen funktioniert weil der DB-Trigger
die tatsächliche Sequence anzieht.
Ist die Deklaration der Sequence für eine vorhandene eigentlich richtig?
Wenn ich bei @GeneratedValue(..,generator="" den Namen der
DB-Sequence eingebe wird diese angeblich nicht gefunden.
Danke!
|