У меня есть сущность, которую я хочу сохранить в Hibernate (3.2)
EntityBean имеет столбец, который указывает, как другое значение bean-объекта сущности должно быть разобранным:
<class name="ServiceAttributeValue" table="service_attribute_value">
<cache usage="nonstrict-read-write"/>
<id name="id" column="id" type="int-long">
<generator class="native"/>
</id>
<property name="serviceAttribute" type="service-attribute" column="service_attribute" not-null="true" />
<!-- order is important here -->
<property name="value" type="attribute-value" not-null="true">
<column name="service_attribute" />
<column name="id_value"/>
<column name="enum_value"/>
<column name="string_value"/>
<column name="int_value"/>
<column name="boolean_value"/>
<column name="double_value"/>
</property>
</class>
В столбце «service_attribute» указывается, какие из столбцов для свойства «value» следует просматривать, когда оно отменяет маршализацию значения, и, что более важно, точно, каким типом должно быть значение, например, класс Enum, если enum_value должен быть прочитан, или тип Бина, если значение id_value должно быть прочитано.
Свойство value использует собственный CompositeUserType для выполнения демаршаллинга, и в этом я хочу сослаться на столбец service_attribute (хотя и не записывать в него), однако при попытке сделать это я получаю следующую ошибку:
org.hibernate.MappingException: Repeated column in mapping for entity: com.precurse.apps.rank.model.service.ServiceAttributeValue column: service_attribute (should be mapped with insert="false" update="false")
Однако в определении составного свойства эти атрибуты xml не определены (только в обычном свойстве).
Кто-нибудь знает способ преодоления этого или есть лучшее решение этой проблемы.
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать,
Приветствие
Simon