| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Таблица на несколько сущностей в ejb3 |
| Автор: coolin 16.4.2007, 07:55 |
| пример hibernate-маппинга, когда класс Person содержит подкласс Name, столбцы которого расположены в той же таблице person <class name="eg.Person" table="person"> <id name="Key" column="pid" type="string"> <generator class="uuid"/> </id> <property name="birthday" type="date"/> <component name="Name" class="eg.Name"> <!-- class attribute optional --> <property name="initial"/> <property name="first"/> <property name="last"/> </component> </class> Как это сделать в ejb3? Тоесть хочеться иметь также 2 класса. |
| Автор: polosatij 16.4.2007, 13:29 | ||||
делаешь два класса.. первый содежит:
второй:
усё |
| Автор: coolin 17.4.2007, 06:16 | ||||
| polosatij, таблица одна и она не @Table(name="Name") а person на самом деле нужно днлать так
|
| Автор: coolin 17.4.2007, 09:04 | ||||||
| появилась проблема с множественными вложениями сущностей: так как эти сущности используються по-нескольку раз, нужна возможность переопределения инем колонок чтобы не было совпадений например:
такое решаеться так:
но что если вложенность большая (initial - тоже сложный объект), как например перегрузить типо такого name2_initial_gr1, можно вообще перегружать все поля внезависимости от их вложенности? пример:
|
| Автор: coolin 17.4.2007, 09:31 |
| может быть что-то похожее на это: @AttributeOverride(name = "Name1.Initial.gr1", column = @Column(name = "Name1_Initial_gr1")) |
| Автор: polosatij 17.4.2007, 16:23 |
я предлогал тебе сделать отдельную таблицу для твоих нужд и 2 класса, а не один класс (!) |
| Автор: coolin 18.4.2007, 07:47 | ||
таккой код тупо дает ошибку повторения колонок: org.hibernate.MappingException: Repeated column in mapping for entity: Person column: initial (should be mapped with insert="false" update="false") я так полагаю это реальный недочет, зачем нужны Embeddable, если их нельзя в одном классе несколько раз замапить... Может версию стоит обновить..? |
| Автор: coolin 20.4.2007, 08:04 |
| помогло переопределение DefaultComponentSafeNamingStrategy - кода меньше |