Hibernate Composite Key - 从@JoinColumns 添加另一个键
Hibernate Composite Key - add another key from @JoinColumns
所以,我有以下实体:
@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;
....
}
我的挑战是我需要来自 Merchant Entity 的 @JoinColumn("TenantID") 也是我的 EntityOne 中的 PK(只是 tenantId!"MerchantId" 将保持原样).我唯一发现的是@MapId 注释,但这会将@JoinColumns 中提到的两个 FK 添加到我想要的主键中。
提前致谢!
通过将@JoinColumns 标记为 insertable/updatebla false 并创建一个额外的 merchantId 字段来解决它,该字段的值是我在商家 setter
中设置的
所以,我有以下实体:
@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;
....
}
我的挑战是我需要来自 Merchant Entity 的 @JoinColumn("TenantID") 也是我的 EntityOne 中的 PK(只是 tenantId!"MerchantId" 将保持原样).我唯一发现的是@MapId 注释,但这会将@JoinColumns 中提到的两个 FK 添加到我想要的主键中。
提前致谢!
通过将@JoinColumns 标记为 insertable/updatebla false 并创建一个额外的 merchantId 字段来解决它,该字段的值是我在商家 setter
中设置的