У меня есть эти классы Java:
Class Table1
{ Integer id;
Set<Error> errors;
}
Class Table2
{ Integer id;
Set<Error> errors;
}
Class Table3
{ Integer id;
Set<Error> errors;
}
Class Error
{
Integer id;
Integer tableId; // Pk of parent id
String tableName;
String errorMessage
}
Как лучше всего отобразить их в Hibernate.
Я пробовал это отображение:
<hibernate-mapping>
<class name="Table1" table="TABLE1" schema="xxx" catalog="XXXXX">
<id name="id" type="integer">
<column name="ID" />
<generator class="native" />
</id>
<version column="MODIFIED_DATE" name="modifiedDate"
type="timestamp" unsaved-value="null"/>
<set name="Errors" table="ERROR" fetch="join"
lazy="false" cascade="all-delete-orphan" where="TABLE_NAME='table1'">
<key column ="TABLE_ID" not-null="true" />
<one-to-many class="Error" />
</set>
</class>
Для ребенка:
<hibernate-mapping>
<class name="Error" table="ERROR" schema="XXX" catalog="xxxxx">
<id name="id" type="integer">
<column name="ID" />
<generator class="native" />
</id>
<version column="MODIFIED_DATE" name="modifiedDate" type="timestamp" unsaved-value="null"/>
<property name="tableId" type="integer" insert="false" update="false" >
<column name="TABLE_ID" not-null="true" />
</property>
<property name="tableName" type="string">
<column name="TABLE_NAME" not-null="true" length="20" />
</property>
<property name="errorMessage" type="string">
<column name="ERROR_MESSAGE" length="100" />
</property>
</class>
Это прекрасно работает, если у меня есть только таблица1, когда я добавляю то же отображение для таблицы2,
Я получаю эту ошибку:
org.hibernate.MappingException: Repeated column in mapping for entity: Error column:
TABLE_ID (should be mapped with insert="false" update="false")
Пожалуйста, помогите мне с правильным отображением.
Спасибо