您可以为场景创建实体。但表设计应该是nameId应该是子表的主键,如果您在创建实体类时遇到问题,那么在NetBeans IDE或Eclipse IDE中,可以选择“实体类来自表”来创建实体类。
我会重命名 nameId 至 childId 。从逻辑上讲,你与一个人及其子女之间存在关系。每个孩子本身就是一个人。使用您目前拥有的模型,没有理由单独使用 child 表,但我们假设您稍后会添加不同的属性。我会使用继承和聚合来建模关系:
nameId
childId
child
@Entity @Table(name="PERSON") @Inheritance(strategy=InheritanceType.JOINED) public class Person implements Serializable { @Id private Integer id; private String name; @OneToMany(mappedBy = "parent") private List<Child> children; } @Entity @Table(name="CHILD") @PrimaryKeyJoinColumn(name="nameId", referencedColumnName = "id") private class Child extends Person implements Serializable { @ManyToOne @JoinColumn(name = "parentId", referencedColumnName = "id") private Person parent; }
这是示例代码,逐字输入,您将不得不自己进行错误检查。但这是一个起点。