Hibernate框架多對多時中間表沒有主鍵ID時可以使用組合id,就是哪兩列或者多列組合成爲一個唯一標識一條記錄的id值,在實體類映射文件中配置文件,例如學生表,成績表,課程表三者之間的關係,其中學號與課程號可以組合成爲成績表的id值
<hibernate-mapping >
<class name="cn.entity.Chengji" table="chengjibiao">
<composite-id>
<key-many-to-one name="kecheng" column="kechenghao" class="cn.entity.Kecheng"></key-many-to-one>
<key-many-to-one name="xuesheng" column="xuehao" class="cn.entity.Xuesheng"></key-many-to-one>
</composite-id>
<property name="chengji" column="chengji" type="int" lazy="false"></property>
</class>
</hibernate-mapping>
但是單單這樣還不夠,如果要查詢成績還需要在成績的實體類實現一個Serializable
接口並添加一個屬性:serialVersionUID
代碼如下:get()
與set()
方法省略
public class Chengji implements Serializable {
private static final long serialVersionUID = 1L;
private Xuesheng xuesheng;
private Kecheng kecheng;
private int chengji;
}