博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate笔记--组合主键映射方法
阅读量:6953 次
发布时间:2019-06-27

本文共 1863 字,大约阅读时间需要 6 分钟。

  一个数据库表中其主键有可能不止一个属性,同样映射到实体类中,可能有两个或多个属性共同配置成为一个主键,假设一个实体类Score,其主键有两个属性stuId(学生编号)和subjectId(科目编号),在hibernate环境下应该这样配置:

新建一个实体类ScoreId,属性为stuId,和subjectId,该类需要实现serializable接口(最好重写equals方法和hashcode方法):

public class ScoreId implements Serializable {    private int stuId;    private int subjectId;    public int getStuId() {        return stuId;    }    public void setStuId(int stuId) {        this.stuId = stuId;    }    public int getSubjectId() {        return subjectId;    }    public void setSubjectId(int subjectId) {        this.subjectId = subjectId;    }    public ScoreId(int stuId, int subjectId) {        super();        this.stuId = stuId;        this.subjectId = subjectId;    }    }

新建实体类Score:

public class Score {    private ScoreId scoreId;    private double result;    public ScoreId getScoreId() {        return scoreId;    }    public void setScoreId(ScoreId scoreId) {        this.scoreId = scoreId;    }    public double getResult() {        return result;    }    public void setResult(double result) {        this.result = result;    }    public Score(ScoreId scoreId, double result) {        super();        this.scoreId = scoreId;        this.result = result;    }        }

其次是Score.hbm.xml配置文件:

hibernate.cfg.xml这里就省略了,现在新建一个测试类,用于生成数据库表以及向数据库中存放一条数据:

@Test    public void testCreateDB(){        Configuration cfg = new Configuration().configure();        SchemaExport se=new SchemaExport(cfg);        //第一个参数是否生成ddl脚本 第二个参数是否执行到数据库        se.create(true,true);    }    @Test    public void testSave(){        Session session = HibernateUtil.getSession();        Transaction tx = session.beginTransaction();        Score s=new Score(new ScoreId(2,5),88);        session.save(s);        tx.commit();        session.close();    }

 

转载地址:http://ftjil.baihongyu.com/

你可能感兴趣的文章
mysql语句判断一天操作记录的个数
查看>>
reduce|sum
查看>>
WCF Ria Services
查看>>
mysql之 mysql 5.6不停机主从搭建(一主一从基于GTID复制)
查看>>
面试流程
查看>>
gdal以GA_Update方式打开jpg文件的做法
查看>>
yii2弹出层
查看>>
OSSSME - 开源软件助力中小企业发展
查看>>
基础才是重中之重~值类型和引用类型
查看>>
通过php动态传数据到highcharts
查看>>
正则表达式全部符号解释
查看>>
百度eCharts体验
查看>>
使用python实现用微信远程控制电脑
查看>>
JavaScript 的 WebAssembly
查看>>
2016-我的前端之路:工具化与工程化
查看>>
vue 短信验证码
查看>>
20145129实验报告(一)
查看>>
mssql表分区
查看>>
静态方法工厂模式
查看>>
该是总结沉淀的时候了
查看>>