2013-04-26 67 views
1

我想創建兩個簡單的表與幾個記錄在Postgresql數據庫運行一個簡單的Java應用程序和使用休眠。我已經創建瞭如http://viralpatel.net/blogs/hibernate-one-to-many-annotation-tutorial/中所述的實體EmployeeDepartment。我不使用Maven。我趴在同一個包兩個實體主要方法是這樣的:休眠沒有找到實體

@SuppressWarnings("deprecation") 
public static void main(String[] args) { 

    SessionFactory sf = new Configuration().configure().buildSessionFactory(); 
    Session session = sf.openSession(); 
    session.beginTransaction(); 

    Department department = new Department(); 
    department.setDepartmentName("Sales"); 
    session.save(department); 

    Employee emp1 = new Employee("Nina", "Mayers", "111"); 
    Employee emp2 = new Employee("Tony", "Almeida", "222"); 

    emp1.setDepartment(department); 
    emp2.setDepartment(department); 

    session.save(emp1); 
    session.save(emp2); 

    session.getTransaction().commit(); 
    session.close(); 

} 

我hibernate.cfg.xml文件是:

<hibernate-configuration> 
<session-factory> 
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property> 
    <property name="hibernate.connection.username">postgres</property> 
    <property name="hibernate.connection.password">password</property> 
    <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/testDB</property> 
    <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property> 
    <property name="hibernate.show_sql">true</property> 
    <property name="hibernate.hbm2dll.auto">create-drop</property> 
</session-factory> 

運行的應用程序,下面的錯誤後出現:

Exception in thread "main" org.hibernate.MappingException: Unknown entity: com.al.hibernatetest.Department 
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1063) 
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1433) 
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:116) 
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:205) 
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55) 
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:190) 
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49) 
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:91) 
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:764) 
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:756) 
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:752) 
at com.al.hibernatetest.Main.main(Main.java:24) 

由於未知我的原因,hibernate無法識別實體?可能是什麼問題呢?任何在配置中?缺少一個罐子?會議創作中的任何事情?

回答

1
<mapping class="net.viralpatel.hibernate.Department"/> 
<mapping class="net.viralpatel.hibernate.Employee" 

你忘了在hibernate.cfg.xml中複製這兩行。