2013-04-01 7 views
8

Używam Spring Data, JPA, Hibernate i MySQL. Mam jedną do wielu relacji między wydarzeniem a kategorią. Oczywiście jedno wydarzenie może mieć tylko jedną kategorię, a jednej kategorii można przypisać wiele wydarzeń. Problem pojawia się, gdy próbuję usunąć kategorię, jeśli jakieś zdarzenie zawiera klucz obcy tej kategorii, wtedy pojawia się błąd. Chciałbym ustawić klucz obcy w tabeli zdarzeń na wartość null, gdy kategoria zostanie usunięta. W tej chwili aktualizuję wszystkie zdarzenia, jawnie ustawiając klucz obcy w kodzie, aktualizując go do wartości null przed usunięciem kategorii. Czy jest jakikolwiek sposób na wykorzystanie adnotacji?JPA jeden do wielu usunąć i ustawić klucz foregn na wartość null

To mój Kategoria:

@Entity 
    @Table(name = "category") 
    public class Category implements Serializable{ 
    @OneToMany(mappedBy="category", targetEntity=Event.class, fetch=FetchType.LAZY, cascade= 
{CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}) 

    public Set<Event> getEvents_category() { 
    return events_category; 
    } 
    } 

I klasa zdarzenia:

@Entity 
    @Table(name = "event") 
    public class Event implements Serializable{ 

    @ManyToOne(cascade={CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST, 
CascadeType.REFRESH}) 
    @JoinColumn(name="events_dancestyle") 
    public DanceStyle getDanceStyle() { 
    return danceStyle; 
    } 
    } 

Widziałem, że temat był omawiany wiele razy, ale ja nie widziałem żadnego rozwiązanie tego.

Odpowiedz

Powiązane problemy