【发布时间】:2019-01-10 20:15:49
【问题描述】:
这是我的第一个实体。
@Entity
@Table(name = "person")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String firstName;
private String lastName;
// Removed other stuff for brevity
}
这是我的第二个实体
@Entity
@Table(name = "membership")
public class Membership {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String membershipType;
// Help here, I need another column called person_id which is what will correspond
// to persons or person rows from person table
}
基本上在person 表中,我们将有n 人(n 行)。而在membership 表中,每个人我们可以有 3-4 列(取决于他们的membershipType,因为每个人都可以拥有多个成员资格,如主要、组、个人、次要等,请原谅业务逻辑)。所以实际上membership 表可能有超过n 行。
现在我有几个问题
这是来自
person -> membership表的OneToMany还是ManyToOne?我从person -> membership table猜测它的OneToMany。如何在我的 jpa 注释和实体类中实现这种映射?我需要这个用于删除操作,即,如果我删除
membership row,则不应删除相应的person row。但是,如果我删除person row,ALL对应的membership rows应该被删除。我如何去实现这个映射和功能?
【问题讨论】:
标签: hibernate jpa spring-data-jpa one-to-many cascading-deletes