Ich bin nach einer Anleitung im Web vorgegangen um ein Beispielprojekt mit Java 5 SE und Hibernate zu erstellen. Leider erzeugt die ausführung nur folgenden Fehler
start.java
HibernateUtil.java
artikel.java
und die hibernate.cfg.xml
Wo liegt hier der Fehler :?: Die Klasse artikel ist doch eindeutig als Entity definiert.
Die wichtigsten Codefragmente sindException in thread "main" org.hibernate.MappingException: Unknown entity: artikel
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:180)
at org.hibernate.event.def.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:512)
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:70)
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
at start.main(start.java:13)
start.java
Code:
import org.hibernate.*;
public class start {
public static void main(String[] args) {
artikel test = new artikel();
test.setPreis(30.25);
test.setSteuer(7.25);
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
session.persist(test);
tx.commit();
session.close();
}
}
Code:
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Code:
import javax.persistence.Id;
import org.hibernate.annotations.Entity;
import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;
import org.hibernate.annotations.Table;
@Entity
@Table(appliesTo="t1")
public class artikel {
@Id
@Generated(value=GenerationTime.INSERT)
private long id;
private String name;
private String beschr;
private double preis;
private double steuer;
public artikel() {}
<getter und setter>
}
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="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://<IP>/test1</property>
<property name="connection.username">testuser</property>
<property name="connection.password">xxxxxxxxxx</property>
<property name="connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
<mapping class="artikel"/>
</session-factory>
</hibernate-configuration>