我有两个实体如下:
Invoice
- 主键是
InvoiceId
- 其他感兴趣的列是
[OrgId, VendorId, VendorInvoiceId]
- 主键是
InvoiceState
- 主键是
InvoiceStateId
- 其他感兴趣的列是
[OrgId, VendorId, VendorInvoiceId]
- 主键是
“其他感兴趣的列”在两个表中形成唯一键,除了第二个表InvoiceState
可以包含在第一个表中没有对应记录的记录Invoice
。
在实体层,我想定义Invoice
实体以包含对具有定义关系的InvoiceState
实体@OneToOne
的引用,@JoinColumns
如下所示:
@OneToOne
@JoinColumns
({
@JoinColumn(name="OrgId", referencedColumnName="OrgId"),
@JoinColumn(name="VendorId", referencedColumnName="VendorId"),
@JoinColumn(name="VendorInvoiceId", referencedColumnName="VendorInvoiceId")
})
但这会引发一个异常,即两个实体中的外键计数不相同。我什至没有在这两个表之间定义外键。
有没有办法定义@OneToOne
两个不共享外键但有一组可以在期间使用的列的实体之间的关系JOIN
?