2013-10-28 49 views
3

嗨,我試圖映射該POJO租類來創建自己的Hibernate映射文件。失敗Hibernate映射:從表中X的關聯是指未映射的Y級

Rent.java(POJO):

public class Rent implements Serializable { 

    private static final long serialVersionUID = 1L; 

     Employee employee; 
     Client client; 
     Car car; 

    /* + getter and setter... */ 
    } 

我的目的是創建Web應用程序,用戶可以設置哪些員工都租了一輛車到client.So這是我實施」已經試過

Rent.hbm.xml

<hibernate-mapping> 
    <class name="com.google.musicstore.domain.Rent" table="RENT"> 
    <id name="id" column="RENT_ID"> 
     <generator class="native"/> 
    </id> 
    <one-to-one name="car" class="com.project.domain.Car" 
     cascade="save-update"> 
    </one-to-one> 
    <one-to-one name="client" class="com.project.domain.Client" 
     cascade="save-update"> 
    </one-to-one> 
    <many-to-one name="employee" class="com.project.domain.Employee" 
     cascade="save-update"> 
    </many-to-one> 
    </class> 
</hibernate-mapping> 

但它給我這個錯誤:

[java] Initial SessionFactory creation failed.org.hibernate.MappingException: An association from the table RENT refers to an unmapped class: com.project.domain.Employee 

我在做什麼錯?感謝您的幫助。

我也映射所有實體在hibernate.cfg.xml中

<mapping resource="com/project/carRentalAgency/domain/Employee.hbm.xml"/> 
    <mapping resource="com/project/carRentalAgency/domain/Client.hbm.xml"/> 
    <mapping resource="com/project/carRentalAgency/domain/Car.hbm.xml"/> 
    <mapping resource="com/project/carRentalAgency/domain/Rent.hbm.xml"/> 

[編輯]作爲請求我已經添加了文件 Employee.hbm.xml

<hibernate-mapping> 
     <class name="com.project.carRentalAgency.domain.Employee" table="EMPLOYEE"> 
      <id name="id" type="long" access="field"> 
       <column name="ID" /> 
       <generator class="increment" /> 
      </id> 
      <property name="name" type="java.lang.String" access="field"> 
       <column name="EMPLOYEE_NAME" /> 
      </property> 
      <property name="surname" type="java.lang.String"> 
       <column name="EMPLOYEE_SURNAME" /> 
      </property> 
      <property name="username" type="java.lang.String"> 
       <column name="EMPLOYEE_USERNAME" /> 
      </property> 
      <property name="password" type="java.lang.String"> 
       <column name="EMPLOYEE_PASSWORD" /> 
      </property> 

     </class> 
    </hibernate-mapping> 

回答

7

有兩種可能性,我能想到的:

(1)您類名Employee.hbm.xml不是一個完全合格的類名

(2)你沒有申報hibernate.cfg.xml所有的映射資源。

您可能需要提供更多信息,例如Employee.hbm.xmlhibernate.cfg.xml以及Rent.hbm.xml供我們檢查。

+0

感謝您的答覆,我只是修改後添加文件.. 你的意思是與(1)「不是一個完全合格的類名」是什麼? 對於(2)我已經聲明,公司僱員,客戶,租車和租的映射資源......所以所有的資源 – user2298581

+0

在Rent.hbm.xml,你的路徑是「com.google.musicstore.domain.Rent」而在hibernate.cfg.xml它的「COM /項目/ carRentalAgency /域/ Rent.hbm.xml」,也許這種不一致是一個問題,對不對? –

7

我發現,因爲休眠文件classname.hbm.xml屬性生成操作未設置爲嵌入的資源通常發生此錯誤。