[英]How mapping @ManyToMany with primary key in extra table using java.util.List
If i do this; 如果我这样做;
public class Client{
@Id
@Column(columnDefinition = "CHAR(11)")
private String cpf;
@ManyToMany(cascade = CascadeType.ALL)
private List<Address> addresses;
//get set
}
. 。
public class Address{
@Id
private String zipCode;
@Id
private String number;
@Id
@Column(columnDefinition = "varchar(255) default 'DONT HAVE'")
private String complement;
//get set
}
... I have this mapping: ...我有这个映射:
Image - Model using java.util.List with @ManyToMany 图像-使用带有@ManyToMany的java.util.List的模型
If i do this; 如果我这样做;
public class Client{
@Id
@Column(columnDefinition = "CHAR(11)")
private String cpf;
@ManyToMany(cascade = CascadeType.ALL)
private Set<Address> addresses;
//get set
}
. 。
public class Address{
@Id
private String zipCode;
@Id
private String number;
@Id
@Column(columnDefinition = "varchar(255) default 'DONT HAVE'")
private String complement;
//get set
}
... I have this mapping: ...我有这个映射:
Image - Model using java.util.Set with @ManyToMany 图像-使用带有@ManyToMany的java.util.Set的模型
The Question is: how do I get the attributes of the extra table automatically generated by @ManyToMany relationship are primary foreign keys(PFK) using java.util.List? 问题是: 如何使用java.util.List获取由@ManyToMany关系自动生成的额外表的属性是主外键(PFK)?
in my jpa study, we don't need create a primary key in extra table generate by @ManyToMany. 在我的jpa研究中,我们不需要在@ManyToMany生成的额外表中创建主键。
This is my final solution: 这是我的最终解决方案:
public class Client{
@Id
@Column(columnDefinition = "CHAR(11)")
private String cpf;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name="client_address", joinColumns = {
@JoinColumn(name = "client_cpf") },
inverseJoinColumns = { @JoinColumn(name = "address_zipcode",
referencedColumnName="zipCode"), @JoinColumn(name = "address_number",
referencedColumnName="number", @JoinColumn(name =
"address_complement",
referencedColumnName="complement"},
uniqueConstraints = @UniqueConstraint(columnNames = {
"client_cpf", "address_zipcode", "address_number",
"address_complement" })
private List<Address> addresses;
//get set
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.