我已经为此厌倦了很长时间。我不知道是什么原因导致此错误。这是我的文件:
Uzytkownik.hbm.xml
<?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="Uzytkownik" table="uzytkownicy"> <id column="id" name="id" type="int"/> <property column="login" generated="never" lazy="false" name="login" type="string"/> <property column="haslo" generated="never" lazy="false" name="haslo" type="string"/> </class> </hibernate-mapping>
hibernate.cfg.xml:
<?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 name=""> <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.connection.url">jdbc:mysql://localhost/sprawozdania</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <mapping resource="com/vaannila/uzytkownik/Uzytkownik.hbm.xml"/> </session-factory> </hibernate-configuration>
我使用的是MySQL 5.5。
我收到以下错误:
Exception in thread "main" java.lang.ExceptionInInitializerError at com.vaannila.util.HibernateUtil.<clinit>(HibernateUtil.java:14) at com.vaannila.uzytkownik.Main.saveUzyt(Main.java:22) at com.vaannila.uzytkownik.Main.main(Main.java:16) Caused by: org.hibernate.MappingException: entity class not found: Uzytkownik
这是我的课程:main.java
package com.vaannila.uzytkownik; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; import javax.persistence.Entity; import com.vaannila.util.HibernateUtil; public class Main { /** * @param args */ public static void main(String[] args) { Main obj = new Main(); String uzytkownikLogin = obj.saveUzyt("Adam", "Malysz"); } public String saveUzyt(String login, String haslo){ Session session = HibernateUtil.getSessionFactory().openSession(); Transaction transaction = null; String uzytLog = null; try { transaction = session.beginTransaction(); Uzytkownik uzyt = new Uzytkownik(); uzyt.setLogin(login); uzyt.setHaslo(haslo); uzytLog = (String) session.save(uzyt); transaction.commit(); } catch (HibernateException e) { transaction.rollback(); e.printStackTrace(); } finally { session.close(); } return uzytLog; } }
Uzytkownik.java:
package com.vaannila.uzytkownik; // default package // Generated 2011-07-14 13:39:18 by Hibernate Tools 3.4.0.CR1 /** * Uzytkownik generated by hbm2java */ public class Uzytkownik implements java.io.Serializable { private int id; private String login; private String haslo; public Uzytkownik() { } public Uzytkownik(int id) { this.id = id; } public Uzytkownik(int id, String login, String haslo) { this.id = id; this.login = login; this.haslo = haslo; } public int getId() { return this.id; } public void setId(int id) { this.id = id; } public String getLogin() { return this.login; } public void setLogin(String login) { this.login = login; } public String getHaslo() { return this.haslo; } public void setHaslo(String haslo) { this.haslo = haslo; } }
HibernateUtil.java:
package com.vaannila.util; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } }
也许您的映射文件不完整,但其他方面应该是:
<class name="com.vaannila.uzytkownik.Uzytkownik" table="uzytkownicy">
=>需要设置完全合格的类名称(带有包)