2013-10-28 2 views
3

Привет Я пытаюсь сопоставить этот класс рендеринга pojo, чтобы создать его файл сопоставления спящего режима.Неверное сопоставление спящего режима: ассоциация из таблицы X относится к классу unmapped Y

Rent.java (POJO):

public class Rent implements Serializable { 

    private static final long serialVersionUID = 1L; 

     Employee employee; 
     Client client; 
     Car car; 

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

Мое намерение состоит в том, чтобы создать веб-приложение, в котором пользователь может задать, какой работник арендовали автомобиль в 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"/> 

[EDIT] Как запрос я добавил файлы 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.xml и hibernate.cfg.xml, в дополнение к Rent.hbm.xml для нас, чтобы проверить.

+0

спасибо за ответ, я только что отредактировал сообщение, добавляющее файлы. Что вы имеете в виду (1) «не является полностью квалифицированным именем класса»? Для (2) я объявил ресурс сопоставления Employee, Client, Car and Rent ... так что все ресурсы – user2298581

+0

В Rent.hbm.xml ваш путь «com.google.musicstore.domain.Rent» в hibernate.cfg.xml это «com/project/carRentalAgency/domain/Rent.hbm.xml», может быть, это несоответствие является проблемой, не так ли? –

7

Я обнаружил, что обычно эта ошибка возникла из-за того, что для свойства Build Action для свойств hibernate filename.hbm.xml не установлено значение Embedded Resource.