Hibernate一对一主键映射

时间:2021-06-10 19:29:31

Hibernate一对一主键映射        
        
        ------------------------------                            ------------------------------
        |             Users             |                            |          Resume             |
        |----------------------------|        FK_USERRESU            |----------------------------|
        |    UserId number(6) <pk,fk> |        <-------------      |    ResId number(6) <pk>     |
        |    UserPass nvarchar2(20)     |                            |    ResName nvarchar2(20)     |
        |    UserPass nvarchar2(20)     |                            |    RescardNo nvarchar2(20)     |
        ------------------------------                            ------------------------------
                                                                
        User表中UserId字段是主键,同时作为外键参照Resume表的主键,即User表与Resume表共享主键
        
        在Resume.hbm.xml进行配置
            <one-to-one name="users"
                class="com.entity.Users"
                cascade="all"
            />
        在Users.hbm.xml进行配置
            <one-to-one name="resume"
                class="com.entity.Resume"
                constrained="true"
            />
        注:constrained属性为true,表明Users表中的UserId主键同时作为外键参照resume表的主键。在
                User.hbm.xml文件中,必须为OID使用foreign主键生成策略
                    <id name="userid" tyep="java.lang.Integer" column = "UserId">
                        <generator class="foreign">
                            <param name="property">resume</param>
                        </generator>
                    </id>