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;
}