這裏的想法 -
1人表用於存儲人的細節和他/她的地址,
2.城市和國家都有各自單獨的表,
3.地址表包含關於城市以及城市屬於哪個州的數據,
4.聯繫表包含聯繫號碼,其中一個人可以有多個聯繫號碼。
以下是MySQL表架構設計 -的Java的Hibernate映射表
我創建了以下領域爲上述表 -
1. PersonsDomain
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "PersonID")
private int personId;
@Column(name = "FirstName")
private String firstName;
@Column(name = "Age")
private int age;
@Column(name = "DateOfBirth")
private Date dateOfBirth;
@OneToMany(mappedBy = "PersonID", cascade = CascadeType.MERGE, fetch = FetchType.LAZY)
@JsonBackReference
private Set<ContactDomain> contactDomain;
@ManyToOne
@JoinColumn(name = "AddressID", nullable = true)
@JsonBackReference
private Set<AddressDomain> addressDomain;
2. AddressDomain
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "AddressID")
private int addressId;
@OneToOne(mappedBy = "CityID", cascade = CascadeType.MERGE, fetch = FetchType.LAZY)
@Fetch(FetchMode.JOIN)
@JsonBackReference
private CityDomain cityDomain;
@ManyToOne
@JoinColumn(name = "StateID", nullable = true)
@JsonBackReference
private StateDomain stateDomain;
3. CityDomain
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "CityID")
private int cityId;
@Column(name = "CityName")
private String cityName;
4. StateDomain
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "StateID")
private int stateId;
@Column(name = "StateName")
private String stateName;
5。ContactDomain
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ContactID")
private int contactId;
@Column(name = "ContactNumber")
private int contactNumber;
@ManyToOne
@JoinColumn(name = "PersonID", nullable = true)
@JsonBackReference
private PersonsDomain personId;
@Column(name = "Description")
private String description;
我想知道,我已經正確映射在Hibernate中關係。