hibernate中表的复合主键映射表

成绩表Cj:学号和课程号是复合主键

hibernate中表的复合主键映射表_第1张图片

映射文件Cj.hbm.xml:

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.cn">
	<class name="Cj" table="CJ">
		<composite-id >
			<key-property name="xh" column="XH" type="string"/>
			<key-property name="kch" column="KCH" type="string"/>
		</composite-id>
		<property name="cj" column="CJ" type="integer"/>
	</class>
</hibernate-mapping>
这里注意用<composite-id>就行了。
保存对象:

public void saveCj(){
	Transaction ts=session.beginTransaction();		 //定义事务
	Cj cj=new Cj();	      //创建POJO类对象
	cj.setXh("081101");   //设置学号
	cj.setKch("001");     //设置课程号
	cj.setCj(80);         //设置成绩
	session.save(cj);      //保存
	ts.commit();          //提交事务
}
修改对象:

public void updateCj1(){
	Transaction ts=session.beginTransaction();
	//根据学号及课程号查询,注意这里是HQL语句,Cj是类名,xh和kch是类中属性
	//关于HQL会在后面讲解
	Query query=session.createQuery("from Cj where xh='081101' and kch='001'");
	Cj cj=(Cj) query.list().get(0); //得到第一个值
	cj.setCj(92);                   //重新赋值成绩
	session.update(cj);		 //修改
	ts.commit();			 //提交事务
}










你可能感兴趣的:(复合主键,hibernate映射文件)