Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在实体中实现地图关联_Java_Hibernate_Jpa - Fatal编程技术网

Java 如何在实体中实现地图关联

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

我尝试在我的实体中实现map,但我不知道如何:

公共类匹配{
私人长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”)
私有地图匹配;
// ...
}