– Start
下面我们通过例子看一下如何配置双边一对一关系,使它们可以相互引用。
package shangbo.hibernate.demo023;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
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;
@OneToOne(mappedBy = "customer")
private CustomerDetail customerDetail;
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 CustomerDetail getCustomerDetail() {
return customerDetail;
}
public void setCustomerDetail(CustomerDetail customerDetail) {
this.customerDetail = customerDetail;
}
}
package shangbo.hibernate.demo023;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.MapsId;
import javax.persistence.OneToOne;
@Entity
public class CustomerDetail {
@Id
private Integer customerId;
private String hobby;
// 一对一
@OneToOne
@JoinColumn(name = "customerId")
@MapsId
private Customer customer;
public CustomerDetail() {
}
public CustomerDetail(Customer customer, String hobby) {
this.customer = customer;
this.hobby = hobby;
}
public Integer getCustomerId() {
return customerId;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
}
– 更多参见:Hibernate 精萃
– 声 明:转载请注明出处
– Last Updated on 2019-06-29
– Written by ShangBo on 2019-06-29
– End