我想在“供应商”列上连接两个表, 在发票表中,供应商类型为整数,在供应商表中,供应商类型为 varchar(10)。
有没有可能做一个类型转换,也有关系?
@Entity
public class Vendor
{
private String id;
@Id(Column="vendor")
public String getId(){ ... }
}
@Entity
public class Invoice
{
private Vendor vendor;
@One-to-one
public Vendor getVendor() { ... }
}
最佳答案
据我所知,使用数据透视表(就像您用来表示多对多关系一样)是正确的方法。
像这样的东西应该可以工作:
@Entity
public class Invoice
{
@JoinTable(name = "invoice_vendor", joinColumns = {
@JoinColumn(name = "invoice", referencedColumnName = "vendor_id")}, inverseJoinColumns = {
@JoinColumn(name = "vendor", referencedColumnName = "id")})
@OneToOne
private Vendor vendor;
}
invoice_vendor 表在 id 列中包含整数 id,在 vendor_id 列中包含 varchar 引用。
此外,我推测您希望供应商之间存在 ManyToOne 关系,但您写的是一对一,所以我就这样保留了。
关于java - JPA 在需要类型转换的字段上定义关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4280343/