У меня есть класс Java, который содержит список другого класса.
@Entity public class Country {
private Long id;
private List<Hotel> hotels;
public void setId(Long id) {
this.id = id;
}
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="COUNTRY_SEQ")
@SequenceGenerator(name="COUNTRY_SEQ", sequenceName="COUNTRY_SEQ", allocationSize=1)
public Long getId() {
return id;
}
public void setHotels(List<Hotel> hotels) {
this.hotels = hotels;
}
@OneToMany
@JoinTable(
name="COUNTRY_HOTELS",
joinColumns=@JoinColumn(name="COUNTRY_ID"),
inverseJoinColumns=@JoinColumn(name="HOTEL_ID")
)
public List<Hotel> getHotels() {
return hotels;
}
}
Когда я пытаюсь удалить Страну, я получаю «ORA-02292: ограничение целостности (HOT.fk1a1e72aaf2b226a) нарушено - найдена дочерняя запись», поскольку она не может удалить Страну, когда ее дети (= Отели) все еще существуют. 1004 *
Однако, СЛЕДУЕТ быть таким! Я не хочу, чтобы мои отели были удалены при удалении страны.
Я пытался без каких-либо @ Каскадных аннотаций, но это не удалось. Я также пытался с SAVE_UPDATE, все еще не удалось.
Итак, какие @ Каскадные аннотации мне нужны (или есть другое решение?):
- PERSIST
- Мердж
- УДАЛИТЬ
- ОБНОВЛЕНИЕ
- DELETE
- SAVE_UPDATE
- REPLICATE
- DELETE_ORPHAN
- ЗАМОК
- выселить
Bart