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;
}
}
我见过的主题是讨论过很多次,但我还没有看到任何解决方案。
大卫您好,感谢您的回答。你的回答只是证实我是对的。我使用了与您提供的链接完全相同的方法。 – Lukasz