Hibernate主键之复合主键

在hibernate中复合主键的有两种实现方式(simple demo)

Hibernate主键之复合主键

  Composite-id class must implement Serializable

现分别用这两种实现方式举个栗子:

数据库中的选课表    score(s_id,c_id,s_score);其中PK(s_id,c_id) 学生编号与课程编号为复合主键

(1)基于持久化类属性的复合主键

 

JavaBean:

Hibernate主键之复合主键

SC.hbm.xml

Hibernate主键之复合主键

(2)基于主键类的复合主键

JavaBean:

Hibernate主键之复合主键

主键类

Hibernate主键之复合主键

SC.hbm.xml 

<hibernate-mapping  package="beans">
    <class name = "SC" table="score">
        <composite-id name="scPK" class="ScPK">
            <key-property name="sid" column="s_id" type="string"></key-property>
            <key-property name="cid" column="c_id" type="string"></key-property>
        </composite-id>

        <property name="score" column="s_score" type="int" length="3"></property>
    </class>
</hibernate-mapping>

 Notes:

Hibernate主键之复合主键