因此,我有以下实体:

@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中提到的F​​K都添加到所需的主键中。

先感谢您!

最佳答案

通过将@JoinColumns标记为insertable / updatebla为false并创建一个额外的商人ID字段(通过我在商人设置器中设置的值)来解决此问题

08-04 10:51