hibernate一对一映射
一、xml配置
持久化类Address
public class Address implements Serializable {
private long id;
private String city;
private Customer customer;
持久化类Customer
public class Customer implements Serializable {
private long id;
private String countrycode;
private String idcardNo;
private Address address;
Address.hbm.xml配置文件
<class name="myHibernateDemo10.Address">
<id name="id">
<generator class="foreign">
<param name="property">customer</param>
</generator>
</id>
<property name="city"></property>
<one-to-one name="customer" class="myHibernateDemo10.Customer"
cascade="all"></one-to-one>
</class>
Customer.hbm.xml配置文件
<class name="myHibernateDemo10.Customer">
<id name="id">
<generator class="native"></generator>
</id>
<property name="countrycode"></property>
<property name="idcardNo"></property>
<one-to-one name="address" class="myHibernateDemo10.Address"
cascade="all"></one-to-one>
</class>
二、注解配置
持久化类Customer
@Entity
@Table(name = "Customer")
public class Customer implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "country_code")
private String countrycode;
@Column(name = "id_card_NO")
private String idcardNo;
@OneToOne(mappedBy = "customer")
@Cascade(value = CascadeType.ALL)
private Address address;
持久化类Address
@Entity
@Table(name = "Address")
public class Address implements Serializable {
@Id
@GenericGenerator(name = "generator",strategy = "foreign",
parameters =@Parameter(value = "customer",name =
"property"))
@GeneratedValue(generator = "generator")
private long id;
private String city;
@OneToOne
@PrimaryKeyJoinColumn
@Cascade(value = CascadeType.ALL)
private Customer customer;