jpa 每次启动都要创建外键索引_JPA一对多删除并将外键设置为空

我使用Spring Data,JPA,Hibernate和MySQL。我在事件和类别之间有一对多的关系。显然,一个事件只能有一个类别,一个类别可以分配多个事件。当我尝试删除类别时,出现问题,如果任何事件持有该类别的外键,则出现错误。我想在删除类别时将Event表中的外键设置为null。目前,我通过在代码中明确设置外键来更新所有事件,在删除类别之前将其更新为空。有没有使用注释的方法?

这是我的分类:

@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 getEvents_category() {

return events_category;

}

}和Event类:

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

}

}我已经看到这个话题被讨论了很多次,但我还没有看到任何解决方案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值