因此,我有以下实体:
@Entity
public class EntityOne{
@EmbeddedId
private EntityOneIdentity entityOneIdentity;
@ManyToOne
@JoinColumns(value = {
@JoinColumn(name = "MerchantID", referencedColumnName = "MerchantID"),
@JoinColumn(name = "TenantID", referencedColumnName = "TenantID")})
private Merchant merchant;
.......
}
带身份(复合键):
@Embeddable
public class EntityOneIdentity implements Serializable {
@Column(name = "EntityID")
private String entityID;
@Column(name = "TenantID")
private String tenantID;
....
}
我的挑战是我需要来自商人实体的@JoinColumn(“ TenantID”)也是我的EntityOne中的PK(只是tenantId!“ MerchantId”将保持不变)。我发现的唯一内容是@MapId注释,但这会将@JoinColumns中提到的FK都添加到所需的主键中。
先感谢您!
最佳答案
通过将@JoinColumns标记为insertable / updatebla为false并创建一个额外的商人ID字段(通过我在商人设置器中设置的值)来解决此问题