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;