– Start
我们已经知道了如何配置多对一和一对多,我们也可以同时配置多对一和一对多,使它们可以相互引用。
package shangbo.hibernate.demo021;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
@Entity
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "customerId-generator")
@SequenceGenerator(name = "customerId-generator", sequenceName = "CUSTOMER_ID_SEQ")
private Integer customerId;
private String customerName;
// 一对多
@OneToMany(mappedBy = "customer")
private List<Address> addresses = new ArrayList<>();
public Customer() {
}
public Customer(String customerName) {
this.customerName = customerName;
}
public Integer getCustomerId() {
return customerId;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public List<Address> getAddresses() {
return addresses;
}
public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}
}
package shangbo.hibernate.demo021;
import javax.persistence.Entity;
import javax.persistence.ForeignKey;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
@Entity
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "addressId-generator")
@SequenceGenerator(name = "addressId-generator", sequenceName = "ADDRESS_ID_SEQ")
private Integer addressId;
private String city;
private String street;
// 多对一关系
@ManyToOne
@JoinColumn(name = "customerId", foreignKey = @ForeignKey(name = "CUSTOMER_ID_FK"))
private Customer customer;
public Address() {
}
public Address(String city, String street, Customer customer) {
this.city = city;
this.street = street;
this.customer = customer;
}
public Integer getAddressId() {
return addressId;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
}
– 更多参见:Hibernate 精萃
– 声 明:转载请注明出处
– Last Updated on 2019-06-27
– Written by ShangBo on 2019-06-27
– End