加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 删除父manyToOne注释时删除孤立

发布时间:2020-12-15 02:19:11 所属栏目:Java 来源:网络整理
导读:我有两个实体,相关如下 @Entity@Table(name = "APPOINTMENT")public class Appointment { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long codeAp; @ManyToOne(fetch = FetchType.EAGER),@OnDelete(action = OnDeleteAction.CASCADE) @Jo
我有两个实体,相关如下

@Entity
@Table(name = "APPOINTMENT")
public class Appointment {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long codeAp;

    @ManyToOne(fetch = FetchType.EAGER),@OnDelete(action = OnDeleteAction.CASCADE)
    @JoinColumn(name = "codeP")
    private Patient patient;

    //attributes
    //getters and setters
    //constructors



@Entity
@Table(name = "PATIENT")
public class Patient {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long codeP;

    //attributes
    //getters and setters
    //constructors

我正在使用JpaRepository删除方法.
数据库中的表PATIENT和APPOINTMENT之间存在约束,
当我移除患者时,我想移除孤儿.
我添加了@OnDelete hibernate注释,但它对我不起作用!
你能告诉我为什么吗?
我想保持这种单向关系,你能帮助我吗?

解决方法

如果您希望仅将关联作为单向使用,则可以在字段中定义延迟加载的反面,而不会为其公开getter和setter:

@Entity
public class Patient {

    @OneToMany(mappedBy = "patient",orphanRemoval = true)
    private Collection<Appointment> appointments;
}

这种方式将孤儿移除逻辑从患者应用到他们的约会,作为奖励,您可以在HQL查询中从患者导航到约会.

请注意mappedBy属性,该属性告知约会负责关联管理,因此您可以通过在约会中定义的多对一关系中设置患者来继续将约会与患者相关联.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读