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     }
  • 相关阅读:
    关于tomcat
    java 判断字符串是否为数字(包含负数)
    poi
    (String)、toString、String.valueOf
    linux 运行jar包
    视图
    java 使进程停顿几秒
    linux_tomcat
    【HTML+CSS】七小时快速入门~~~~~~~
    关于CSS动画效果的图片展示
  • 原文地址:https://www.cnblogs.com/jiangjianzhu/p/5546048.html
Copyright © 2011-2022 走看看