【发布时间】:2021-11-05 19:13:31
【问题描述】:
我有两个类,父类和子类,在子类中我与自身有关系。数据库以两个单独的表为模型,父子表共享相同的“id”,列“holder”作为其自身的外键。我写了以下代码。我正在学习,很快就会陷入这个复杂的继承和相互关系示例,我想知道我是否正确使用了这些符号。
Person.class
@Entity @Getter @Setter @NoArgsConstructor @Inheritance(strategy = InheritanceType.JOINED) @Table(name = "person") public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private Integer id; @NotNull @Column(name = "name") private String name; }
成员.class
@Entity @Getter @Setter @NoArgsConstructor @Table(name = "member") public class Member extends Person { @NotNull @Column(name = "member_type") private Integer memberType; @Column(name = "id_holder") private Integer idHolder; @ManyToOne(targetEntity = Member.class) @JoinColumn(name = "id_holder", referencedColumnName = "id", insertable = false, updatable = false) private Member holder; @OneToMany(mappedBy = "holder", cascade = CascadeType.ALL) private List<Member> dependents; }
我将在前端填充这些实体的对象是:
会员模型
export class Member { constructor( public id?: number, public name?: string, public memberType?: number, public idHolder?: any ) {} }
【问题讨论】:
标签: java spring typescript hibernate mapping