[英]JPA/Hibernate: How to associate composite foreign keys with partial primary keys
[英]map three tables with primary keys and foreign keys Composite in hibernate
我必须在休眠状态下映射这些表,而事实已经以多种方式尝试过并且对我没有用,如果我可以帮忙,我将不会粘贴我拥有的代码,因为我认为这是不对的,并且我做了很多更改。
idCountry(PK)
国家的名字
idRegion(PK)
idCountry(PK,FK)
地区名称
idProvinces(PK)
idRegion(PK,FK)
省份名称
希望你能帮助我,非常感谢
这是表映射:
@Entity
@Table(name = "COUNTRY")
public class Country implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "idCountry", unique = true, nullable = false)
private int countryId;
@Column(name = "countryName", nullable = false)
private String countryName;
@OneToMany(mappedBy = "regionPk.country", cascade = CascadeType.ALL)
private Set<Region> regions = new HashSet<Region>(0);
// Generate Getters, Setters, hashCode() and equals()
}
@Entity
@Table(name = "REGION")
public class Region implements Serializable {
@EmbeddedId
private RegionPk regionPk; // RegionPk contains the composite PK
@Column(name = "RegionName", nullable = false)
private String regionName;
@OneToMany(mappedBy = "provincePk.region", cascade = CascadeType.ALL)
private Set<Province> provinces = new HashSet<Province>(0);
// Generate Getters, Setters, hashCode() and equals()
}
@Embeddable
public class RegionPk implements Serializable {
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "idRegion", unique = true, nullable = false)
private int regionId;
@ManyToOne
@JoinColumn(name = "idCountry", nullable = false)
private Country country;
// Generate Getters, Setters, hashCode() and equals()
}
@Entity
@Table(name = "PROVINCES")
public class Province implements Serializable {
@EmbeddedId
private ProvincePk provincePk; // ProvincePk contains the composite PK
@Column(name = "ProvinceName", nullable = false)
private String provinceName;
// Generate Getters, Setters, hashCode() and equals()
}
@Embeddable
public class ProvincePk implements Serializable {
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "idProvinces", unique = true, nullable = false)
private int provinceId;
@ManyToOne
@JoinColumn(name = "idRegion", nullable = false)
private Region region;
// Generate Getters, Setters, hashCode() and equals()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.