Ассоциация Hibernate ссылается на исключение не сопоставленного класса - PullRequest
8 голосов
/ 27 ноября 2011

У меня есть следующий класс:

public class Car implements Comparable<Car>{

private long idCar;

private String model;

private String immat; //Car License Plate

private Company company;

private Manufacturer manufacturer;    

private Calendar registrationDate;

private Calendar lastControlDate;

//Has empty constructor + Getters and setters here onwards...

и это файл конфигурации Hibernate:

<?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="Car" table="cars" lazy="true"> 
    <id name="idCar" type="long" column="idCar">
      <generator class="native" />
    </id>

    <property name="model" type="string" column="model" />
    <property name="immat" type="string" column="immat" />
    <property name="registrationDate" type="date" column="registrationDate" />
    <property name="lastControlDate" type="date" column="lastControlDate" />

    <many-to-one name="company" class="fr.model.company.Company" column="idCompany"
     not-null="true" />
    <many-to-one name="manufacturer" class="fr.model.component.Manufacturer"
             column="idManufacturer" not-null="true" />    

  </class>
</hibernate-mapping>

и класс производителя:

public class Manufacturer implements Comparable<Manufacturer> {

private Long idManufacturer;
private String name;

Я получаю сообщение об ошибке связи с не сопоставленными ссылками, но пока не могу понять, почему.

Редактировать: Отображение производителя -

    <?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="Manufacturer" table="manufacturer">
      <id name="idManufacturer" type="long" column="idManufacturer">
            <generator class="native" />
    </id>

    <property name="name" type="string" not-null="true" />

  </class>

</hibernate-mapping>

Исключение:

Initial SessionFactory creation failed.org.hibernate.MappingException: 
Association references unmapped class: fr.synapture.model.company.Car

Ответы [ 5 ]

15 голосов
/ 28 ноября 2011

Первоначальное создание SessionFactory не удалось.org.hibernate.MappingException: Ассоциация ссылается на не отображенный класс: fr.synapture.model.company.Car

Это говорит о том, что вы сопоставили класс, о котором фабрика сессий не знает. Вам необходимо включить Car в конфигурацию Session Factory.

Чтобы подтвердить это, не могли бы вы включить конфигурацию Hibernate в свои вопросы.

4 голосов
/ 02 декабря 2014

В моем приложении у меня есть проект отображения nHibernate, отдельный от логического проекта (2 проекта). Я установил все сопоставления в «модельном проекте» и ... имею эту ошибку: Ссылка на ассоциацию не сопоставленный класс:

В моем случае мне пришлось установить для свойств MyClass.hbm.xml значение "Build Action - Enabled Resource".

1 голос
/ 27 ноября 2011
Класс

Manufacturer также должен быть отображен, как и Company, так как оба ссылаются из Car mapping.

0 голосов
/ 20 августа 2018

Чтобы решить эту проблему, вы должны добавить XML-файлы в конфигурацию гибернации, выполнив следующие действия:

  1. Открыть перспективу гибернации
  2. Выберите свою конфигурацию, например «Спящий режим»Конфигурация "
  3. Щелкните правой кнопкой мыши в вашей конфигурации
  4. Выберите редактирование конфигурации
  5. Откройте вкладку Mappings
  6. Нажмите кнопку Добавить
  7. Найдите и выберите«Manufacturer.hbm.xml» и «Car.hbm.xml»
  8. Нажмите кнопку Ok
  9. Нажмите кнопку Ok

С этими шагами вы будетерешить

0 голосов
/ 28 февраля 2018

Просто включите xmls Manufacturer.hbm.xml и Car.hbm.xml в

<mapping resource="Manufacturer.hbm.xml"/>
<mapping resource="Car.hbm.xml"/>

в hibernate.cfg.xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...