zoukankan      html  css  js  c++  java
  • 组合主键映射

    通过组件来实现组合主键的步骤:

    1、 编写组合主键的类,该类必须实现Serializable接口、生成对应的get/set方法;最好实现equalshashCode方法

     1 public class ScoreId implements Serializable{
     2     private int stuId;//学生编号
     3     private int subjectId;//科目编号
     4     public int getStuId() {
     5         return stuId;
     6     }
     7     public void setStuId(int stuId) {
     8         this.stuId = stuId;
     9     }
    10     public int getSubjectId() {
    11         return subjectId;
    12     }
    13     public void setSubjectId(int subjectId) {
    14         this.subjectId = subjectId;
    15     }
    16 }

    2、在主类中引用对应组件

     1 /**
     2  * 成绩
     3  * */
     4 public class Score {
     5     private ScoreId scoreId;
     6     private double result;//成绩
     7     
     8     public ScoreId getScoreId() {
     9         return scoreId;
    10     }
    11     public void setScoreId(ScoreId scoreId) {
    12         this.scoreId = scoreId;
    13     }
    14     public double getResult() {
    15         return result;
    16     }
    17     public void setResult(double result) {
    18         this.result = result;
    19     }
    20 }

    3、映射文件的编写

    1 <hibernate-mapping package="cn.siggy.pojo">
    2     <class name="Score">
    3         <composite-id name="scoreId" class="ScoreId">
    4             <key-property name="stuId"></key-property>
    5             <key-property name="subjectId"></key-property>
    6         </composite-id>
    7         <property name="result"/>
    8     </class>
    9 </hibernate-mapping>

    4、测试代码

     1 @Test
     2     public void testSave() throws HibernateException{
     3         Session session = null;
     4         Transaction tx = null;
     5         try{
     6             session = HibernateUtil.getSession();
     7             tx = session.beginTransaction();
     8             
     9             Score s = new Score();
    10             ScoreId sid = new ScoreId();
    11             sid.setStuId(2);
    12             sid.setSubjectId(6);
    13             s.setResult(89);
    14             s.setScoreId(sid);
    15             
    16             session.save(s);
    17             
    18             tx.commit();
    19             
    20         }catch (HibernateException e) {
    21             if(tx!=null)
    22                 tx.rollback();
    23             e.printStackTrace();
    24             throw e;
    25         }finally{
    26             HibernateUtil.closeSession();
    27         }
    28     }
  • 相关阅读:
    <!--[if IE 9]>....<!end if-->
    背景颜色设置
    UIImageView 响应UIButton的点击事件
    响应键盘return事件
    iOS 封装数据请求,解析数据(异步)
    UIImageView 圆角
    JS 控制文本框必须输入值才能查询
    MVC4 @Html.Raw()
    JS加成显示
    随机生成人物名称
  • 原文地址:https://www.cnblogs.com/jiangjianzhu/p/5546048.html
Copyright © 2011-2022 走看看