Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по Хибернейт мэппингу / 3 сообщений из 3, страница 1 из 1
26.12.2006, 19:00:58
    #34226109
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по Хибернейт мэппингу
Господа!
Подскажите плиз.
В классе Company есть Set contactPersons.
В классе Person есть тоже Set contactPersons.
то есть из класса Company я могу сделать мэппинг
Код: plaintext
1.
2.
3.
4.
<set name="contactPersons" inverse="true">
            <key column="COMPANY_ID"/>
            <one-to-many  class ="ContactPerson"/>
        </set>

и из класса Person
Код: plaintext
1.
2.
3.
4.
<set name="contactPersons" inverse="true">
            <key column="PERSON_ID"/>
            <one-to-many  class ="ContactPerson"/>
        </set>
А из класса ContactPerson
Код: plaintext
1.
2.
        <many-to-one name="company" column="COMPANY_ID"  not- null ="true"/>
        <many-to-one name="person"  column="PERSON_ID"  not- null ="true"/>

но дело в том, что PK для класса ContactPerson состоит из этих двух полей
Код: plaintext
1.
2.
3.
4.
<composite-id name="contactPersonId"  class ="ContactPersonId">
            <key-property name="companyId" column="COMPANY_ID" type="integer"/>
            <key-property name="personId" column="PERSON_ID" type="integer"/>
</composite-id>
и Hibernate ругается
Код: plaintext
1.
org.hibernate.MappingException: Repeated column in mapping  for  entity: ContactPerson column: COMPANY_ID (should be mapped with insert="false" update="false")

Что можно сделать - может обьявить суррогатный PK и объявить комбинацию полей companyId и personId уникальными? Можно такое делать в Хибернейте?
...
Рейтинг: 0 / 0
26.12.2006, 19:10:11
    #34226126
вопрос по Хибернейт мэппингу
oson
Repeated column in mapping for entity: ContactPerson column: COMPANY_ID (should be mapped with insert="false" update="false")
[/src]
Что можно сделать - может обьявить суррогатный PK и объявить комбинацию полей companyId и personId уникальными? Можно такое делать в Хибернейте?

Можно сделать то, что просят. Дописать в insert="false" и update="false" в маппинг колонки COMPANY_ID в классе ContactPerson.
...
Рейтинг: 0 / 0
26.12.2006, 19:29:55
    #34226163
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по Хибернейт мэппингу
а может так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
   < class  name="ContactPerson" table="CMA_CONTACTPERSONS">

        <composite-id name="contactPersonId"  class ="ContactPersonId">

            <key-many-to-one name="company" column="COMPANY_ID/>

             <key-many-to-one name="person"  column="PERSON_ID"/>

        </composite-id>
........
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по Хибернейт мэппингу / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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