powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / inheritance mapping in Hibernate
3 сообщений из 3, страница 1 из 1
inheritance mapping in Hibernate
    #34450922
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа!
Подскажите плиз.
Есть родительский класс CurrentProcess и дочерний RegistrationCompanyProcess.
Пишу мэппинг для обеих в одном файле - CurrentProcess.hbm.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<hibernate-mapping>
    < class  name="bo.CurrentProcess" table="CMA_CURRENT_PROCESSES">

        <id name="id" column="ID" type="java.lang.Long">
             <generator   class ="native"/>
        </id>
        ...
          <joined-subclass name="bo.RegistrationPersonProcess"   
                                                table="REGISTRATION_PERSON_PROCESSES">
            <key column="ID"/>
            <many-to-one name="registrablePerson" column="REGISTRABLE_PERSON_ID"/>
           
        </joined-subclass>
    </ class >
То есть этот субкласс имеет отношение many-to-one с другим классом - Person.

В классе RegistrationCompanyProcess пишу (ессно с get и set)
Код: plaintext
1.
2.
3.
4.
 public   class  RegistrationCompanyProcess
{
  Company registrableCompany;
}

Отдельный файл RegistrationPersonProcesshbm.xml я не создаю и в hibernate.cfg.xml указываю только
Код: plaintext
1.
   <mapping resource="bo/CurrentProcess.hbm.xml"/>
и НЕ указываю
Код: plaintext
1.
  <!--<mapping resource="bo/RegistrationPersonProcess.hbm.xml"/>-->
потому что его не создаю:)

Далее в классе Person

Код: plaintext
1.
2.
3.
4.
   public   class  Person  implements  java.io.Serializable
{
      private  Set registrationProcesses
}

Person.hbm.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  <hibernate-mapping>
    < class  name="bo.Person" table="PERSONS">
   ...
    <set name="registrationProcesses" inverse="true">
            <key column="REGISTRABLE_PERSON_NR" not- null ="false"/>
            <one-to-many  class ="bo.RegistrationPersonProcess"/>
        </set>
  </ class >



И вот тут выпадает ошибка
Код: plaintext
1.
2.
3.
4.
5.
6.
  java:hibernate/SessionFactory<-org.dom4j.tree.DefaultAttribute@170a4d0 [Attribute: name resource value "bo/RegistrationCompanyProcess.hbm.xml"]

[Configuration] Reading mappings from resource: bo/RegistrationCompanyProcess.hbm.xml

ERROR [HibernateUtil] Initial SessionFactory creation failed.
org.hibernate.MappingException: Resource: bo/RegistrationCompanyProcess.hbm.xml not found
Естественно его нет.
Почему же класс Person ищет этот RegistrationCompanyProcess.hbm.xml - ему недостаточно
мэппинга внутри CurrentProcess.hbm.xml в виде
<joined-subclass name="bo.RegistrationPersonProcess" ...> ?
...
Рейтинг: 0 / 0
inheritance mapping in Hibernate
    #34451641
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чё они по разному называються RegistrationPersonProcess & RegistrationCompanyProcess ?
...
Рейтинг: 0 / 0
inheritance mapping in Hibernate
    #34452916
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это я сам запутался, сорри.
В конечном итоге работает так(для истории):

CurrentProcess.hbm.xml

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<hibernate-mapping>
    < class  name="bo.CurrentProcess" table="CURRENT_PROCESSES" polymorphism="implicit">

        <id name="id" column="ID" type="java.lang.Long">
            <generator  class ="sequence">
                <param name="sequence">CURRENT_PROCESSES_SEQUENCE</param>
            </generator>
       </id>
        .....
        <joined-subclass namebo.RegistrationPersonProcess" table="PERSON_PROCESSES">
            <key column="ID" foreign-key="RPP_CPR_FK"/>
            <many-to-one name="registrablePerson" column="REGISTRABLE_PERSON_NR"/>
            <set name="interviewProcesses" inverse="true">
                <key column="REGISTRATION_PROCESS_ID"/>
                <one-to-many class="bo.InterviewProcess"/>
            </set>
        </joined-subclass>

        <joined-subclass name="bo.InterviewProcess" table="INTERVIEW_PROCESSES">
            <key column="ID"/>
            <many-to-one name="registrationPersonProcess" column="REGISTRATION_PROCESS_ID"/>
            <set name="interviewReports" inverse="true">
                <key column="INTERVIEW_PROCESS_ID"/>
                <one-to-many class="bo.InterviewReport"/>
            </set>
        </joined-subclass>

        <joined-subclass name="bo.RegistrationCompanyProcess" table="COMPANY_PROCESSES">
            <key column="ID"/>
            <many-to-one name="registrableCompany" column="REGISTRABLE_COMPANY_ID" not-null="false"/>
        </joined-subclass>
</ class >
</hibernate-mapping>

CurrentProcess
Код: plaintext
1.
2.
3.
4.
5.
 public   abstract   class  CurrentProcess   implements  Serializable
{
     private   Long  id;
    ...
}
RegistrationPersonProcess
Код: plaintext
1.
2.
3.
4.
5.
   public   class  RegistrationPersonProcess  extends  CurrentProcess
{
    private    Person registrablePerson;
    private  Set interviewProcesses;
}
InterviewProcess
Код: plaintext
1.
2.
3.
4.
5.
 public   class  InterviewProcess  extends  CurrentProcess
{
    RegistrationPersonProcess registrationPersonProcess;
    Set interviewReports;
}
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / inheritance mapping in Hibernate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]