[英]Composite keys using IdClass on Hibernate for composite keys when using DataJpaTest
我有這樣的 JPA class
@Data
@Entity
@Table(name = "oss_org_discount")
@IdClass(OrganizationDiscountPK.class)
public class OrganizationDiscount {
@Id
@OneToOne(fetch = FetchType.LAZY)
@EqualsAndHashCode.Exclude
@JoinColumn(name = "Org")
@ToString.Exclude
private Organization organization;
@EqualsAndHashCode.Include
@ToString.Include
private String getOrganizationId() {
return organization.getId();
}
@Id
@Column(name = "Discount")
private String discountId;
private String active;
@Contract(pure = true)
public boolean isActive() {
return "Y".equals(active);
}
public void setActive(final boolean active) {
this.active = active ? "Y":"";
}
}
和一個 IdClass。
@Data
public class OrganizationDiscountPK implements Serializable {
private Organization organization;
private String discountId;
}
當我查看日志時,我看到生成了以下內容。
Hibernate: alter table oss_org_discount add constraint UK_ecc64ehkc31t6kf0hcdwj1tvi unique (org)
我的問題是,它不應該顯示類似
Hibernate: alter table oss_org_discount add constraint UK_ecc64ehkc31t6kf0hcdwj1tvi unique (org, discount)
不確定這是我的錯誤還是 Hibernate 中的錯誤。
我確實看到了這個...
Hibernate: create table oss_org_discount (discount varchar(255) not null, active varchar(255), org varchar(255) not null, primary key (discount, org))
所以另一個問題是為什么要創建一個唯一的約束?
問題是Organization
上的OneToOne
。 應該是@ManyToOne
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.