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);
ManageEmployee.java-Dateicode:
Mapping-Datei:
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
Tags und Links java hibernate oracle11g hibernate-mapping