Hallo zusammen ich hoffe es kann mir jemand helfen,
ich habe mal ein kleines Programm angefangen um mich in Hibernate einzuarbeiten.
Dazu habe ich eine Klasse Aufgabe welche in die Datenbank geschrieben werden soll.
Mit
bekomme ich erfolgreich meine Objekte aus der DB welche ich vorher mit einem Insert Script selber reingeschrieben habe.
Nun möchte ich aber ein Objekt Aufgabe erstellen und mit den Settern Werte zuweisen.
Nur leider bekomme ich eine Exception.
Habe mir ein Buch besorgt und arbeite das paralel durch aber ich kann meinen Fehler nicht finden.
und die dazugehörige Mapping XML
Meine Hibernate Config (zur Vollständigkeithalber)
Exception
Danke für eure Hilfe.
ich habe mal ein kleines Programm angefangen um mich in Hibernate einzuarbeiten.
Dazu habe ich eine Klasse Aufgabe welche in die Datenbank geschrieben werden soll.
Mit
Java:
List<Aufgabe> aufgabenListe = session.createQuery("from Aufgabe").list();
Nun möchte ich aber ein Objekt Aufgabe erstellen und mit den Settern Werte zuweisen.
Nur leider bekomme ich eine Exception.
Habe mir ein Buch besorgt und arbeite das paralel durch aber ich kann meinen Fehler nicht finden.
Java:
public class Aufgabe implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
private Projekt projekt;
private int datum;
private int zeit;
private String beschreibung;
private Prioritaet prioritaet;
private Status status;
public Aufgabe() {
/**
Konstruktor der Klasse
*/
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Projekt getProjekt() {
return projekt;
}
public void setProjekt(Projekt projekt) {
this.projekt = projekt;
}
public int getDatum() {
return datum;
}
public void setDatum(int datum) {
this.datum = datum;
}
public int getZeit() {
return zeit;
}
public void setZeit(int zeit) {
this.zeit = zeit;
}
public String getBeschreibung() {
return beschreibung;
}
public void setBeschreibung(String beschreibung) {
this.beschreibung = beschreibung;
}
public Prioritaet getPrioritaet() {
return prioritaet;
}
public void setPrioritaet(Prioritaet prioritaet) {
this.prioritaet = prioritaet;
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
}
und die dazugehörige Mapping XML
Java:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="database.entitys.Aufgabe"
table="Aufgabe">
<id type="java.lang.Long" column="id">
<generator class="native" />
</id>
<property name="name" column="name" type="java.lang.String" />
<property name="datum" column="datum" type="java.lang.Integer" />
<property name="zeit" column="zeit" type="java.lang.Integer" />
<property name="beschreibung" column="beschreibung" type="java.lang.String" />
<many-to-one name="projekt" class="database.entitys.Projekt" column="projekt" cascade="all" unique="true"/>
<many-to-one name="prioritaet" class="database.entitys.Prioritaet" column="prioritaet" cascade="all" unique="true"/>
<many-to-one name="status" class="database.entitys.Status" column="status" cascade="all" unique="true"/>
</class>
</hibernate-mapping>
Meine Hibernate Config (zur Vollständigkeithalber)
Java:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
<property name="hibernate.connection.url">jdbc:derby:D:/01_Java/07_Workspace_Juno/BOrg/database;create=true</property>
<property name="hibernate.connection.username"></property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.pool_size">10</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- Mapping files -->
<mapping resource="database/entitys/Aufgabe.hbm.xml"/>
<mapping resource="database/entitys/Prioritaet.hbm.xml"/>
<mapping resource="database/entitys/Projekt.hbm.xml"/>
<mapping resource="database/entitys/Status.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Java:
public void persistAufgabe(Aufgabe aufgabe){
openSession();
beginTransaction();
session.saveOrUpdate(aufgabe);
commitTransaction();
closeSession();
}
private void openSession() {
this.session = this.sessionFactory.openSession();
}
private void beginTransaction() {
this.transaction = this.session.beginTransaction();
}
private void commitTransaction() {
if (this.transaction != null) {
this.transaction.commit();
}
}
private void closeSession() {
if (session != null) {
session.close();
}
}
Exception
Java:
Exception in thread "AWT-EventQueue-0" org.hibernate.exception.SQLGrammarException: could not get or update next value
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:64)
at org.hibernate.engine.transaction.Isolater$JdbcDelegate.delegateWork(Isolater.java:211)
at org.hibernate.engine.transaction.Isolater.doIsolatedWork(Isolater.java:67)
at org.hibernate.engine.TransactionHelper.doWorkInNewTransaction(TransactionHelper.java:74)
at org.hibernate.id.TableGenerator.generate(TableGenerator.java:118)
Danke für eure Hilfe.