码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate映射关系配置(三)

时间:2017-09-22 21:08:32      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:column   net   on()   字段   ota   return   class   bsp   value   

一对一单向(外键映射):

Bean:

public class Card implements Serializable{

    private int id ;
    
    private int num ;
    
    private Person person ;

        ....
}
public class Person implements Serializable {
    
    private int id ;
    
    private String name ;
        ....
}

Xml:

Card.hbm.xml:
<class name = "Card">
        <!-- id是来配置主键 
             name是类中的哪个属性和主键映射
             generator:表示主键的生成策略
        -->
        <id name = "id">
            <generator class="native" />
        </id>
        <!-- property是用来把类中的属性和表的字段做一一对应 -->
        <property name="num" />
        
        <!-- many-to-one 唯一的创建新的字段的标签
             name是Car中一的一方的属性
             column 表示name对应到表中的外键是什么名字
        -->
        
        <many-to-one name="person" column="pid" unique="true" cascade="all"/>
        
    </class>
Person.hbm.xml:
<class name = "Person">
        <!-- id是来配置主键 
             name是类中的哪个属性和主键映射
             generator:表示主键的生成策略
        -->
        <id name = "id">
            <generator class="native" />
        </id>
        <property name="name" />
    </class>

annotation:

@Entity
public class Card implements Serializable{
        @Id @GeneratedValue
    public int getId() {
        return id;
    }
        @ManyToOne
    @JoinColumn(name="pid",unique=true)
    public Person getPerson() {
        return person;
    }
}

@Entity
public class Person implements Serializable {
        @Id @GeneratedValue
    public int getId() {
        return id;
    }
}

一对一双向(外键映射):

Xml:

Card.hbm.xml:
<class name = "Card">
        <!-- id是来配置主键 
             name是类中的哪个属性和主键映射
             generator:表示主键的生成策略
        -->
        <id name = "id">
            <generator class="native" />
        </id>
        <!-- property是用来把类中的属性和表的字段做一一对应 -->
        <property name="num" />
        
        <!-- many-to-one 唯一的创建新的字段的标签
             name是Car中一的一方的属性
             column 表示name对应到表中的外键是什么名字
        -->
        
        <many-to-one name="person" column="pid" unique="true" cascade="all" />
        
    </class>

Person.hbm.xml:

<class name = "Person">
        <!-- id是来配置主键 
             name是类中的哪个属性和主键映射
             generator:表示主键的生成策略
        -->
        <id name = "id">
            <generator class="native" />
        </id>
        <property name="name" />
        
        <one-to-one name="card" property-ref="person"/>
    </class>

annotation:

@Entity
public class Card implements Serializable{
        @Id @GeneratedValue
    public int getId() {
        return id;
    }

        @ManyToOne
    @JoinColumn(name="pid",unique=true)
    public Person getPerson() {
        return person;
    }
}

@Entity
public class Person implements Serializable {
        @Id @GeneratedValue
    public int getId() {
        return id;
    }
        
        @OneToOne(mappedBy="person")
    public Card getCard() {
        return card;
    }
}

一对一单向(主键映射):

xml:

Card.hbm.xml:
<class name = "Card">
        <!-- id是来配置主键 
             name是类中的哪个属性和主键映射
             generator:表示主键的生成策略
        -->
        <id name = "id">
            <generator class="foreign">
                <param name="property">person</param>
            </generator>
        </id>
        <!-- property是用来把类中的属性和表的字段做一一对应 -->
        <property name="num" />
        
        <!-- many-to-one 唯一的创建新的字段的标签
             name是Car中一的一方的属性
             column 表示name对应到表中的外键是什么名字
        -->
        
        <one-to-one name="person" constrained="true" />        
    </class>
Person.hbm.xml:
<class name = "Person">
        <!-- id是来配置主键 
             name是类中的哪个属性和主键映射
             generator:表示主键的生成策略
        -->
        <id name = "id">
            <generator class="native" />
        </id>
        <property name="name" />
    </class>

annotation:

public class Card implements Serializable{
        //主键来自Person的主键
        @OneToOne
    @PrimaryKeyJoinColumn
    public Person getPerson() {
        return person;
    }
}

@Entity
public class Person implements Serializable {
        @Id @GeneratedValue
    public int getId() {
        return id;
    }
}

 

Hibernate映射关系配置(三)

标签:column   net   on()   字段   ota   return   class   bsp   value   

原文地址:http://www.cnblogs.com/hyl-home/p/7576934.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!