Да, вы должны использовать следующее отображение
@ Entity
открытый класс Parent {
@Id
private Integer id;
@CollectionOfElements
@JoinTable(
name="Child",
joinColumn=@JoinColumn(name="PARENT_ID"))
@IndexColumn("childIndex")
private List<Child> childList = new ArrayList<Child>();
}
Замечание @CollectionOfElements и IndexColumn - это аннотации, специфичные для Hibernate, а не спецификация JPA 1.0. JPA 2.0 представит их.
@ Встраиваемые
общественный класс Child {
// @Embeddable class does not contains identifiers
// child class specific property's
}
Так что следующий код будет работать нормально
Parent parent = new Parent ();
parent.getChildList (). Add (new Child ());
parent.getChildList (). add (new Child ()); // другой ребенок
session.save (родитель); // Родитель и двое детей будут сохранены
Недостатком этой проблемы является то, что аннотация @CollectionOfElements применяется только к классу @Embeddadble, а не к классу Entity. Если вы хотите, чтобы класс Child был классом Entity, я хотел бы увидеть решение. Невозможно одновременно применять аннотации @Entity и @Embeddable к классу.
С уважением
Артур Рональд Ф. Д. Гарсия (программист на Java)
Натал / РН - Бразилия