Hibernate, kasowanie obiektów w asocjacji.

0

Witajcie,

 Mam problem z kasowaniem rekordów związanych asocjajcą wiele do jednego. Jak widać poniżej, klasa **Uzytkownik **jest w wiele do jednego z klasą **Adres**. Wszystko działa poprawnie. Gdy chce usunąć rekord z tebeli **Uzytkownik**, wywala mi ten wiersz i jednocześnie powiązany rekord w tabeli **Adres**. I to jest ok, w sytuacji gdy w obu tabelach jest tylko jeden powiązany rekord. 
         Ale chciałbym rozważyc inną systuacje. W tabeli **Uzytkownik **mam kilka rekordów dowiązanych do tegosamego rekordu w tabeli **Adres**. Chciałbym usunąć jeden z nich (nadal mówie o tabeli **Uzytkonik**), niestety hipernate nie puszcza ze względu na referencje. Jak można zezwolic na kasowanie tych rekordów? Wyczytalem że trzeba ustawic adnotacje @Cascade({DELETE}) ale jakos nadal to nie działa. Z góry dzięki.

tabela Adres:
1 Warszawa
2 Opole
3 Wrocław

tabela Użytkownk:
1 Adam 3 (Wrocław - ref do tabeli Adres)
2 Tomek 2
3 Edyta 1
4 Bartek 2
5 Filip 2

Chce wywalić rekord 4 z tabeli uzytkownik.

@Entity
@Table(name = "Adres")
public class Adres {
 
@Id
@GeneratedValue(strategy=GenerationType.AUTO)

@Column(name = "ID")   
int id;
@Column(name = "Adres")
private String adres;

@Entity
@Table(name = "Uzytkownik")
public class Uzytkownik implements Serializable {
 
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "ID")
private int id;
@Column(name = "Imie")
private String imie;
@Column(name = "Nazwisko")
private String nazwisko;
@Column(name = "Wiek")
private int wiek;

@ManyToOne() 
//@Cascade({DELETE})
@Cascade(DELETE_ORPHAN)
@JoinColumn(name = "AdresID")
private Adres adres;
0

Super, ruszyło:

@OnDelete(action = OnDeleteAction.CASCADE)

azalut Dzieki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1