FEHLER: ORA-02289: Sequenz existiert nicht - org.hibernate.exception.SQLGrammarException: konnte ResultSet nicht extrahieren

8

Ich erstelle eine grundlegende Hibernate-Anwendung für die Mitarbeitertabelle, in der ich den Datensatz mit Hilfe der ManageEmployee-Klasse hinzufüge, aktualisiere, lösche und zeige.

Eigentlich ist ManageEmployee meine Testklasse und ich benutze die Dateien Employee.java und Employee.hbm.xml, um über die Dinge hinauszugehen.

Details: Datenbank: Oracle 11 g Hibernate-Version: Hibernate-Release-4.3.8 Java-Version: Java 1.8

Mitarbeiter-Tabellendetails:

USER_ID NUMBER (15,0) Nein 1 1
FIRST_NAME VARCHAR2 (20 BYTE) Ja 2
LAST_NAME VARCHAR2 (20 BYTE) Ja 3
GEHALTSNUMMER (10,0) Ja 4

Fehlerprotokoll: Sie können im Protokoll sehen, dass der Fehler dreimal auftritt, weil ich das Mitarbeiterobjekt dreimal in der Klasse ManageEmployee.java mit der Methode addEmployee (...) hinzufüge, also gehe ich davon aus, dass das Problem beim Sequenzgenerator liegt für die Spalten-ID.

Hier verwende ich einen naiven Generator. ich G. Integer empID1 = ME.addEmployee ("Zara", "Ali", 1000);

%Vor%

ManageEmployee.java-Dateicode:

%Vor%

Mapping-Datei:

%Vor%

%Vor%
    
user2682305 11.05.2015, 22:44
quelle

2 Antworten

5

In der Mitarbeiterklasse fehlt ein Sequenzgenerator, so dass der Ruhezustand die Zeile nicht einfügen kann. Es sollte so etwas sein, was die ID-Zählungsspalte um 1 erhöht:

%Vor%     
Asura 13.05.2015 00:04
quelle
4

nach dem Lesen von Oracle-Sequenzen und wie sie funktionieren, sowie sagen Hibernate, dass Sie eine verwenden SEQUENCE (Abschnitt 5.1.2.2.4) anstelle eines nativen Generators habe ich meine Fehler behoben.

Ich habe eine Sequenz in der Oracle-Datenbank durch die folgende Abfrage erstellt und meine hbm.xml-Datei

aktualisiert

%Vor%

%Vor%
    
user2682305 21.05.2015 00:44
quelle