zoukankan      html  css  js  c++  java
  • hibernate映射(学生科目成绩)

    实体类

    1 public class Student {
    2     private int id;
    3     private String name;
    4     private Set<Score> scores = new HashSet<Score>();   //一对多
    5 }
    1 public class Score {
    2     private int id;
    3     private Student student;  //1对1
    4     private Course course;      //1对1
    5     private Double score;
    6 }
    1 public class Course {
    2     private int id;
    3     private String name;
    4     private Set<Score> scores = new HashSet<Score>();    //一对多
    5 }

    方式一映射关系(多对一)有3个配置文件

     1 <hibernate-mapping package="entity">
     2     <class name="Course">
     3         <id name="id">
     4             <generator class="native"/>
     5         </id>
     6         <property name="name"/>
     7         <set name="scores" inverse="true">
     8             <key column="courseId"/>
     9             <one-to-many class="Score"/>
    10         </set>
    11     </class>
    12 </hibernate-mapping>
     1 <hibernate-mapping package="entity">
     2     <class name="Score">
     3         <id name="id">
     4             <generator class="native"/>
     5         </id>
     6         <property name="score"/>
     7         <many-to-one name="student" column="studentId" not-null="true"/>
     8         <many-to-one name="course" column="courseId" not-null="true" lazy="false"/>
     9     </class>
    10 </hibernate-mapping>
     1 <hibernate-mapping package="entity">
     2     <class name="Student">
     3         <id name="id">
     4             <generator class="native"/>
     5         </id>
     6         <property name="name"/>
     7 
     8         <set name="scores" inverse="true" lazy="false">
     9             <key column="studentId"/>
    10             <one-to-many class="Score"/>
    11         </set>
    12     </class>
    13 </hibernate-mapping>

    方式二配置(只有两个文件)

     1 <hibernate-mapping package="entity">
     2     <class name="Student">
     3         <id name="id">
     4             <generator class="native"/>
     5         </id>
     6         <property name="name"/>
     7         <set name="scores" lazy="true" table="Score">
     8             <key column="studentId"/>
     9             <!-- 组成元素映射 -->
    10             <composite-element class="Score">
    11                 <!-- Score类中引用当前实体类的属性名 -->
    12                 <parent name="student"/>
    13                 <property name="score"/>
    14                 <!-- Score类与Course类的多对一关联 -->
    15                 <many-to-one name="course" class="Course" column="courseId"/>
    16             </composite-element>
    17         </set>
    18     </class>
    19 </hibernate-mapping>
     1 <hibernate-mapping package="entity">
     2     <class name="Course">
     3         <id name="id">
     4             <generator class="native"/>
     5         </id>
     6         <property name="name"/>
     7         <set name="scores" lazy="true" table="Score" inverse="true">
     8             <key column="courseId"/>
     9             <composite-element class="Score">
    10                 <parent name="course"/>
    11                 <property name="score"/>
    12                 <many-to-one name="student" class="Student" column="studentId" foreign-key="studentId"/>
    13             </composite-element>
    14         </set>
    15     </class>
    16 </hibernate-mapping>
  • 相关阅读:
    【原】结构体包含CString类型成员变量出错的原理
    Android View移动的六种方法
    Android开发之getX,getRawX,getWidth,getTranslationX等的区别
    Android 自定义漂亮的圆形进度条
    android studio 如何让包名展开
    Android基础之——CountDownTimer类,轻松实现倒计时功能
    Java/Android倒计时(开始,暂停,恢复,停止)
    Android Studio:正确导入SO相关文件
    Android MediaPlayer和VideoView的使用
    android studio 将自己的项目生成jar包
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/4733434.html
Copyright © 2011-2022 走看看