Java 如何在实体中实现地图关联
我尝试在我的实体中实现map,但我不知道如何:Java 如何在实体中实现地图关联,java,hibernate,jpa,Java,Hibernate,Jpa,我尝试在我的实体中实现map,但我不知道如何: 公共类匹配{ 私人长id; @Builder.Default @ManyToMany(targetEntity=优惠券.class, mappedBy=“匹配列表”) private List couponList=new ArrayList(); } 公共类优惠券{ 私人长id; @许多 @可接合( name=“加入匹配ID”, joinColumns={@JoinColumn(name=“MATCH_ID”,referencedColumnN
公共类匹配{
私人长id;
@Builder.Default
@ManyToMany(targetEntity=优惠券.class,
mappedBy=“匹配列表”)
private List couponList=new ArrayList();
}
公共类优惠券{
私人长id;
@许多
@可接合(
name=“加入匹配ID”,
joinColumns={@JoinColumn(name=“MATCH_ID”,referencedColumnName=“ID”)},
inverseJoinColumns={@JoinColumn(name=“优惠券”\u ID”,referencedColumnName=“ID”)}
私有映射映射列表=新HashMap();
我应该如何实现这些字段?作为可能的方法之一,您可以使用以下映射 假设您具有以下数据库架构:
创建表TST\U匹配
(
mt_id int不为空,
主键(mt_id)
);
创建表TST_优惠券
(
cn_id int不为空,
主键(cn\U id)
);
创建表TST\U匹配\U优惠券
(
匹配_id int不为空,
优惠券id int不为空,
唯一(匹配id、优惠券id),
外键(匹配id)引用TST\U匹配(mt\U id),
外键(优惠券id)引用TST\U优惠券(cn\U id)
);
您的映射可以如下所示:
@实体
@表(name=“TST\U匹配”)
公开课比赛
{
@身份证
@列(name=“mt_id”)
私有整数id;
@ManyToMany(mappedBy=“matchs”,cascade=CascadeType.ALL)
私人名单优惠券;
// ...
}
@实体
@表(name=“TST\U优惠券”)
公务舱优惠券
{
@身份证
@列(name=“cn\u id”)
私有整数id;
@多个(级联=级联类型.ALL)
@可接合(
name=“TST\U匹配\U优惠券”,
inverseJoinColumns={@JoinColumn(name=“match\u id”,referencedColumnName=“mt\u id”)},
joinColumns={@JoinColumn(name=“优惠券”\u id”,referencedColumnName=“cn\u id”)}
)
@映射键(name=“id”)
私有地图匹配;
// ...
}
作为可能的方法之一,您可以使用以下映射
假设您具有以下数据库架构:
创建表TST\U匹配
(
mt_id int不为空,
主键(mt_id)
);
创建表TST_优惠券
(
cn_id int不为空,
主键(cn\U id)
);
创建表TST\U匹配\U优惠券
(
匹配_id int不为空,
优惠券id int不为空,
唯一(匹配id、优惠券id),
外键(匹配id)引用TST\U匹配(mt\U id),
外键(优惠券id)引用TST\U优惠券(cn\U id)
);
您的映射可以如下所示:
@实体
@表(name=“TST\U匹配”)
公开课比赛
{
@身份证
@列(name=“mt_id”)
私有整数id;
@ManyToMany(mappedBy=“matchs”,cascade=CascadeType.ALL)
私人名单优惠券;
// ...
}
@实体
@表(name=“TST\U优惠券”)
公务舱优惠券
{
@身份证
@列(name=“cn\u id”)
私有整数id;
@多个(级联=级联类型.ALL)
@可接合(
name=“TST\U匹配\U优惠券”,
inverseJoinColumns={@JoinColumn(name=“match\u id”,referencedColumnName=“mt\u id”)},
joinColumns={@JoinColumn(name=“优惠券”\u id”,referencedColumnName=“cn\u id”)}
)
@映射键(name=“id”)
私有地图匹配;
// ...
}