Я могу настроить отображение «один ко многим» объектов List с помощью аннотаций, однако использование XML - нет.Не могли бы вы рассказать мне, как настроить с помощью XML-сопоставления.Любая помощь будет оценена.
Вопрос.Нужен ли столбец «ИНДЕКС», когда я связываю некоторые объекты List с помощью сопоставления XML?
сопоставление аннотаций -> Это работает, как и ожидалось:
@Entity
@Table(name = "ITEM")
public class Item {
@Id
@Column(name = "ID")
private Long id;
@Column(name = "NAME")
private String name;
@OneToMany(targetEntity = ItemDetail.class)
@JoinColumn(name = "ITEM_ID")
private List<ItemDetail> itemDetails;
@Entity
@Table(name = "ITEM_DETAIL")
public class ItemDetail {
@Id
@Column(name = "ID")
private Long id;
@Column(name = "NAME")
private String name;
@Column(name = "ITEM_ID")
private Long itemId;
Отображение XML -> Это не работаетожидается.Произошла ошибка «Ошибка синтаксического анализа XML».Кажется, нужна информация о «колонке ИНДЕКС»:
<hibernate-mapping>
<class name="jp.sample.entity.Item" table="ITEM">
<id name="id" type="java.lang.Long">
<column name="ID" />
<generator class="identity" />
</id>
<property name="name" type="string">
<column name="NAME" />
</property>
<list name="itemDetails" cascade="all">
<key column="ITEM_ID" />
<one-to-many class="jp.sample.entity.ItemDetail" />
</list>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="jp.sample.entity.ItemDetail" table="ITEM_DETAIL">
<id name="id" type="java.lang.Long">
<column name="ID" />
<generator class="identity" />
</id>
<property name="name" type="string">
<column name="NAME" />
</property>
<property name="itemId" type="java.lang.Long">
<column name="ITEM_ID" />
</property>
</class>
</hibernate-mapping>