您的位置:首页 > 其它

hibernate中表的复合主键映射表

2015-11-16 19:16 387 查看
成绩表Cj:学号和课程号是复合主键



映射文件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(); //提交事务
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息