我正在尝试使用JPA将我的java对象映射到数据库表。我知道你通常使用注释来将字段映射到列。我有一个叫Team的类,它有一个id(主键)和名字。就课程而言,id和name是它唯一的属性。但是,在数据库中,球队表有一个id,名字和club_id,因为球队与俱乐部有关。将表映射到POJO
有没有一种方法可以在插入中包含club_id而不明确地添加club_id作为团队类的属性?
我正在尝试使用JPA将我的java对象映射到数据库表。我知道你通常使用注释来将字段映射到列。我有一个叫Team的类,它有一个id(主键)和名字。就课程而言,id和name是它唯一的属性。但是,在数据库中,球队表有一个id,名字和club_id,因为球队与俱乐部有关。将表映射到POJO
有没有一种方法可以在插入中包含club_id而不明确地添加club_id作为团队类的属性?
有几种方法可以做到这一点。
一对多(单向)
在你的俱乐部实体你会
@OneToMany
@JoinColumn(name="club_id", referencedColumnName="club_id")
private List<Team> teams;
一对多在你的俱乐部实体
@OneToMany(mappedBy="club")
private List<Phone> teams;
在
(双向)
你的团队实体
@OneToMany(fetch=FetchType.LAZY)
@JoinColumn(name="club_id")
private Club club;
所以我需要添加一个俱乐部作为团队的一个属性? – user1154644
这一切都取决于你想如何访问该项目。 “团队”应该知道“俱乐部”,而“俱乐部”是否知道“团队”?你可能还想在你的俱乐部有一个'@ OneToMany'与“Team”关联。 – buzzsawddog
看@ManyToOne – BevynQ
你为什么要那么做?这听起来像该团队属于哪个俱乐部是领域模型的重要组成部分。 – chrylis