繁体   English   中英

映射三个表与主键和外键复合在休眠

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM