2013-04-01 62 views
8

我使用Spring Data,JPA,Hibernate和MySQL。我在事件和類別之間有一對多的關係。顯然,一個事件只能有一個類別,一個類別可以分配多個事件。當我嘗試刪除類別時出現問題,如果任何事件持有此類別的外鍵,則出現錯誤。我想在刪除類別時將Event表中的外鍵設置爲null。目前,我通過在代碼中明確設置外鍵來更新所有事件,在刪除類別之前將其更新爲空。有沒有使用註釋的方法?JPA一對多刪除並將foregn鍵設置爲空

這是我的分類:

@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; 
    } 
    } 

和事件類:

@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; 
    } 
    } 

我見過的主題是討論過很多次,但我還沒有看到任何解決方案。

回答