[英]How to create intermediate table between two tables in Hibernate/JPA?
表 1:计算机表
@Entity
@Table ("computer")
public class Computer{
private int id;
.
}
表 2:许可证表:
@Entity
@Table ("licenses")
public class Licnese{
private int id;
.
}
表 3:待创建。 这是中级,应该只有两个字段
计算机 ID | 许可证编号
许可证 ID 可以链接到多个计算机 ID,多个计算机 ID 可以有多个许可证。
CompID | LicneseID
1|2
1|2
2|2
在我们的例子中,计算机和许可证数据已经存在。 我们运行一个作业来填充中间表,即选择计算机 id,从休息服务下载 lincense id,在现有数据库中查找许可证并在中间表中创建记录。
应该怎么做?
独立插入或
中间类{ private int compid private int liceid }
但是在这个主键中需要哪个客户不想要。
我知道我们需要在计算机实体中使用 ElementCollection 但如何引用许可证 ID?
@ElementCollection(targetClass = Intermediate.class)
@CollectionTable(name = "Intermediate", joinColumns = @JoinColumn(name = "ID"))
@AttributeOverrides({
@AttributeOverride(name = "license ID",column = @Column(name = "License ID")),
private List<Intermediate> intermediate;
在这种情况下我们还需要合并计算机实体吗?
根据您要使用 Hibernate 连接表方法的描述。 如何实现连接表方法你可以参考下面提到的链接: http : //fruzenshtein.com/hibernate-join-table-intermediary/
您可以简单地定义一个@ManyToMany
关系,并且会自动创建 joininig 表。
@ManyToMany
@JoinTable(
name = "licence_computer",
joinColumns = @JoinColumn(name = "computer_id"),
inverseJoinColumns = @JoinColumn(name = "licence_id"))
private Set<Licnese> licences;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.