Hallo,
ich bin Neuling bei Hibernate. Ich versuche, meine Anwendung mit Hibernate an eine JavaDB (Derby, Netzwerkversion) anzubinden. Ich verwende Netbeans 7.4, habe die hibernate.cfg.xml erstellt:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
<property name="hibernate.connection.url">jdbc:derby://localhost:1527/sample</property>
<property name="hibernate.connection.username">app</property>
<property name="hibernate.connection.password">app</property>
<mapping class="hawhaw.db.Adresse"/>
</session-factory>
</hibernate-configuration>
Leider bekomme ich eine Exception, die darauf hinweist, dass die Tabellen nicht erstellt werden.
Alle Klassen, die mit Annotations versehen sind, liegen im Paket hawhaw.db
Die Klasse Adresse sieht leicht gekürzt, so aus:
Code:
package hawhaw.db;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "adresse")
public class Adresse implements Serializable {
protected Integer id;
protected String nachname;
protected String vorname;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Integer getId() {
return id;
}
@Column(name = "nachname")
public String getNachname() {
return nachname;
}
...
Code:
4429 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
4673 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: -1, SQLState: 42X05
4674 [main] ERROR org.hibernate.util.JDBCExceptionReporter - Die Tabelle/Ansicht 'ADRESSE' ist nicht vorhanden.
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [hawhaw.db.Adresse]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(AbstractSelectingDelegate.java:63)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2346)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2853)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:320)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)
at hawhaw.HawHaw.main(HawHaw.java:30)
Ich lese gerade "Spring & Hibernate (Hanser Verlag)" und habe mir die Verwendung von Hibernate in Netbeans aus diversen Quellen zusammen gesucht. Ich komme an diesem Punkt nicht weiter. Wenn ich danach bei der Suchmaschine meines Vertauens suche, sehe ich nur Hinweise auf die Verwendung von javax.persistence.Entity anstelle von org.hibernate (..).Entity, aber diesen Fehler begehe ich hier ja nicht.
Kann mir jemand sagen, was ich falsch mache?
Umgebung:
Netbeans 7.4RC1, Hibernate 3.6, JDK7 auf Win7 x64
Danke!