ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
1201
1201
EMPFEHLEN
-
Hallo,
habe folgendes Problem:
ich bekomme es nicht hin eine Oracle-Sequenz auf ein nicht-primärschlüssel-Feld zu mappen.
Meinen Primärschlüssel (OID) inkrementiert Hibernate für mich ohne Probleme:
Code :1 2 3 4
@Id @SequenceGenerator(name="JOB_OID_GENERATOR", sequenceName="SEQ_JOB_OID") @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="JOB_OID_GENERATOR") private long oid;
Jedoch habe ich ein weiteres Feld, das über eine Oracle-Sequenz inkrementiert werden soll.
Mein Ansatz:
Code :1 2 3 4
@SequenceGenerator(name="JOB_IS_NO_GENERATOR", sequenceName="SEQ_IS_NO") @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="JOB_IS_NO_GENERATOR") @Column(name="IS_NO") private BigDecimal isNo;
Ich hatte erwartet daß es so klappen könnte, finde jedoch nirgends Doku dazu (ausser für Primärschlüssel).
Ergebnis: constraint violation weil er NULL einfügt.
Es gibt keine Anhaltspunkte dafür, dass irgendein SequenceGenerator überhaupt den Versuch startet die Sequent für IS_NO zu holen.
Für den primary key OID gibt's Nachrichten wie:
Mein Versuch bringt also schlichtweg nichts hervor.Code :1 2 3
11:45:43,029 DEBUG [AnnotationBinder] Add sequence generator with name: JOB_OID_GENERATOR ... 11:45:43,982 DEBUG [SequenceGenerator] Sequence identifier generated: 13538
Kann mir jemand sagen wie ich eine Sequenz für einen nicht-Primärschlüssel aus einer Oracle Sequenz generieren lassen kann?
Ist @javax.persistence.SequenceGenerator nür für primary keys gedacht? Wenn ja, kennt jemand die dafür geeignete Klasse / Workarounds?
Umgebung:
Hibernate Commons Annotations 3.1.0.GA
Hibernate Annotations 3.4.0.GA
Hibernate 3.3.0.SP1
JDK 1.4
Oracle9i
Vielen Dank für Eure Hilfe!!
Gruß,
Luke
-
20.02.10 10:32 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
deklariere doch mal den Sequence Generator für deine Job-Nummern an der Klasse und gib dann als formula bei der jobNo JPA Spaltendefinition als formula (select seq_name.nextval from dual).
Außerdem wenn du Java 5 Annotations (ohne Retroweaver) benutzt kann deine Ausführungsumgebung nicht JDK 1.4 sein.
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
Hibernate und Oracle
Von Studdi23 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 07.11.09, 15:08 -
Oracle 10.2 g: Trigger befüllt BLOB feld nicht
Von planb2000 im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 15.05.09, 21:48 -
Hibernate + Oracle lower()
Von darksmilie im Forum JavaAntworten: 8Letzter Beitrag: 17.10.08, 15:39 -
Oracle: NextVal einer Sequence ermitteln
Von Gray im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 23.04.07, 12:55 -
Oracle: Sequence
Von flowerpower im Forum Relationale DatenbanksystemeAntworten: 7Letzter Beitrag: 12.10.06, 22:53





Zitieren

Login





