Аннотация для all-delete-orphan в hibernate 4.1.4
Я новичок в этой спящей аннотации. Пожалуйста, помогите мне приведенный ниже код для аннотации.
// XML-файл
<map name="Text" table="JAV_TEXT" inverse="true" cascade="all-delete-orphan">
<key column="FK_GUID"/>
<map-key column="TEXT_GUID" type="string"/>
<one-to-many class="com.TextPO"/>
</map>
Я сделал аннотацию для приведенного выше кода, как
@OneToMany(fetch = FetchType.LAZY, targetEntity=com.TextPO.class)
@Cascade({CascadeType.DELETE_ORPHAN})
@JoinColumn(name="FK_GUID")
@MapKey(name="TEXT_GUID")
private Map<String, PersistentObject> text = new HashMap<String, PersistentObject>();
Так как удаление-сирота является устаревшим методом. Каково точное решение для этого все-удалить-сирота? Я использую hibernate 4.1.4 jar.
1 ответ
Да в Hibernate 4.1.4
версия delete-orphan
устарела, теперь в Hibernate
а также JPA 2.0
ты можешь использовать orphanRemoval
вместо:
@OneToMany(orphanRemoval = true)
Ваше отображение должно быть таким:
@OneToMany(fetch = FetchType.LAZY, targetEntity=com.TextPO.class, orphanRemoval = true)
@JoinColumn(name="FK_GUID")
@MapKey(name="TEXT_GUID")
private Map<String, PersistentObject> text = new HashMap<String, PersistentObject>();
А также удалить @Cascade
аннотации вы можете использовать его в качестве атрибута @OneToMany
аннотация как это:
@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, targetEntity=com.TextPO.class, orphanRemoval = true)
Взгляните на этот пример для дальнейшего чтения.
РЕДАКТИРОВАТЬ:
Чтобы дать inverse="true"
свойство в вашем отображении вам просто нужно указать mappedBy
атрибут в вашем @OneToMany
аннотация для ссылки на принадлежащую часть отношения, например:
@OneToMany(fetch = FetchType.LAZY, targetEntity=com.TextPO.class, orphanRemoval = true, mappedBy= "theOneSide")
Здесь theOneSide
используется в качестве примера, вам просто нужно указать имя поля, используемое в другом классе стороны отображения, например:
@ManyToOne
private MyClass theOneSide;
Посмотрите на инверсию =true в аннотациях JPA для получения дополнительной информации.