Stu*_*ent 5 java mysql spring hibernate
我有两个实体,相关如下
@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
Run Code Online (Sandbox Code Playgroud)
我正在使用JpaRepository删除方法。数据库中的表PATIENT和APPOINTMENT之间有一个约束,当我删除Patient时,我想删除孤儿。我添加了@OnDelete休眠注释,但是它对我不起作用!你能告诉我为什么吗?我想保持这种单向关系,请您帮我一下?
如果您只想继续将关联用作单向,则可以在字段中定义延迟加载的反面,而无需为其公开 getter 和 setter:
@Entity
public class Patient {
@OneToMany(mappedBy = "patient", orphanRemoval = true)
private Collection<Appointment> appointments;
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,orphanRemoval逻辑可以从患者应用到他们的预约,而且您还可以在 HQL 查询中从患者导航到预约。
请注意,该mappedBy属性告诉约会负责关联管理,因此您可以通过在 .xml 文件中定义的多对一关系中设置患者来继续将约会与患者关联起来Appointment。
| 归档时间: |
|
| 查看次数: |
2036 次 |
| 最近记录: |