Ich entwickle eine Anwendung mit Oracle 11g, Java (Struts2) und Hibernate.Oracle Hibernate Sequenzgenerator Problem
Ich habe eine Tabelle namens mytemp mit Spalte mytemp_id vom Typ NUMBER (22,0).
In meiner mytemp.hbm.xml Datei-ID wird wie unten
gegeben<id name="mytempId" type="big_decimal">
<column name="MYTEMP_ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">MYTEMP_TEMP_ID_SEQ</param>
</generator>
</id>
In meiner Oracle-Datenbank-Sequenz namens "MYTEMP_TEMP_ID_SEQ" erstellt und arbeitet in Oracle in Ordnung.
Jetzt, wenn ich versuche Datensatz mit Hilfe von Hibernate einzufügen, gibt es mir folgende Fehler
org.hibernate.id.IdentifierGenerationException: Diese ID-Generator erzeugt lange, integer, kurze oder String
Es scheint, Wenn meine Sequenz Number zurückgibt, hibenate sie als BigDecimal, während die Sequence-Generatorklasse des Hibernate Werte berücksichtigt, die long, integer, short und nur string sind.
Hibernate sollte kein Problem mit BigDecimal haben. Aber ich denke, sie haben nicht BigDecimal für Sequenzgenerator implementiert
Kann mir jemand helfen, das Problem zu lösen?
Danke.
Hallo ChssPly76, Vielen Dank für Ihre Antwort. Ich konvertierte meinen Ruhezustand, um lange zu verwenden, wo auch immer es BigDecimal gibt, um die Sequenz im Ruhezustand zu verwenden. Es löst mein Problem. Ich postete es hier um zu wissen, wie ich Hibernate Identifiergenerator Klasse erweitern kann, BigDecimal für Sequenzgenerator zu verwenden. Ich bekomme es nicht genau. Aber das Konvertieren von BigDecimal in Long löst das Problem sicher. Danke. – amar4kintu
Ich habe erklärt, wie man 'SequenceGenerator' in meiner obigen Antwort erweitert. Schauen Sie sich die 'generate()' Methode an - Sie würden im Prinzip das Ganze kopieren und 'IdentifierGeneratorFactory.get()' durch 'resultSet.get()' ersetzen, um Ihren 'BigDecimal' Wert zu erhalten. – ChssPly76
Ich habe alle meine big_decimal Felder in meiner Hibernate-Generierungsdatei als so lange betrachtet .. so funktioniert es jetzt .. Danke .. für Ihre Unterstützung .. – amar4kintu