实体类

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个配置文件

 <hibernate-mapping package="entity">
<class name="Course">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="scores" inverse="true">
<key column="courseId"/>
<one-to-many class="Score"/>
</set>
</class>
</hibernate-mapping>
 <hibernate-mapping package="entity">
<class name="Score">
<id name="id">
<generator class="native"/>
</id>
<property name="score"/>
<many-to-one name="student" column="studentId" not-null="true"/>
<many-to-one name="course" column="courseId" not-null="true" lazy="false"/>
</class>
</hibernate-mapping>
 <hibernate-mapping package="entity">
<class name="Student">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/> <set name="scores" inverse="true" lazy="false">
<key column="studentId"/>
<one-to-many class="Score"/>
</set>
</class>
</hibernate-mapping>

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

 <hibernate-mapping package="entity">
<class name="Student">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="scores" lazy="true" table="Score">
<key column="studentId"/>
<!-- 组成元素映射 -->
<composite-element class="Score">
<!-- Score类中引用当前实体类的属性名 -->
<parent name="student"/>
<property name="score"/>
<!-- Score类与Course类的多对一关联 -->
<many-to-one name="course" class="Course" column="courseId"/>
</composite-element>
</set>
</class>
</hibernate-mapping>
 <hibernate-mapping package="entity">
<class name="Course">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="scores" lazy="true" table="Score" inverse="true">
<key column="courseId"/>
<composite-element class="Score">
<parent name="course"/>
<property name="score"/>
<many-to-one name="student" class="Student" column="studentId" foreign-key="studentId"/>
</composite-element>
</set>
</class>
</hibernate-mapping>

hibernate映射(学生-科目-成绩)的更多相关文章

  1. hibernate实现学生-课程-成绩

    1.实体类Student package com.test.model; import javax.persistence.Entity; import javax.persistence.Gener ...

  2. hibernate映射的 关联关系:有 一对多关联关系,一对一关联关系,多对多关联关系,继承关系

    hibernate环境配置:导包.... 单向n-1:单向 n-1 关联只需从 n 的一端可以访问 1 的一端 <many-to-one> 元素来映射组成关系: name: 设定待映射的持 ...

  3. [转]Hibernate映射的基本操作

       ++YONG原创,转载请注明http://blog.csdn.net/qjyong/article/details/1829672          Hibernate映射主要是通过对象关系映射 ...

  4. 【SSH系列】Hibernate映射 -- 一对多关联映射

        映射原理       一对多关联映射和多对一关联映射的映射原理是一样一样的,所以说嘛,知识都是相通的,一通百通,为什么说一对多关联映射和多对一关联映射是一样的呢?因为她们都是在多的一端加入一个 ...

  5. 【mysql经典题目】科目成绩都大于80分\每个科目的第一名\总成绩排名

    参考:http://blog.csdn.net/lifushan123/article/details/44948135 1.查询出科目成绩都大于80分的学生的名字? drop table if EX ...

  6. Hibernate映射--基本类映射和对象关系映射(转)

    原文地址:http://blog.csdn.net/lovesummerforever/article/details/20901011   尊重原创,请访问原网址 回想一些我们在没有学习ssh的时候 ...

  7. Hibernate映射文件详解(News***.hbm.xml)二

    转自 http://blog.csdn.net/a9529lty/article/details/6454924 一.hibernate映射文件的作用: Hibernate映射文件是Hibernate ...

  8. hibernate映射文件

    Hibernate的持久化类和关系数据库之间的映射通常是用一个XML文档来定义的.该文档通过一系列XML元素的配置,来将持久化类与数据库表之间建立起一一映射.这意味着映射文档是按照持久化类的定义来创建 ...

  9. Hibernate映射文件如何配置触发器

    Hibernate映射文件之触发器生成(generated属性.database-object元素) (2013-02-27 12:28:49) 转载▼ 标签: it 分类: JAVA学习笔记 这里分 ...

随机推荐

  1. Postman系列之@RequestBody修饰的对象传参数

    例如有如下接口: @RequestMapping(value = "/api/user/validate", method = RequestMethod.POST) UserIn ...

  2. spring boot @Value Could not resolve placeholder

    @Configuration public class PropertySourcePlaceholderConfig { @Bean public PropertySourcesPlaceholde ...

  3. 观察者模式--java

    写在前面 钩子函数.注册函数.回调函数,他们的概念其实是一样的. 观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监 ...

  4. 解决IOS移动端固定定位失效问题

    根据浏览器窗口position:fixed; 定位在底部的元素,会随着屏幕的滚动而滚动,在iOS系统上不起作用. <div class="header">头部</ ...

  5. [Android] Android 卡片式控件CardView的优雅使用

    [Android] Android 卡片式控件CardView的优雅使用 CardView是在安卓5.0提出的卡片式控件 其具体用法如下: 1.在app/build.gradle 文件中添加 comp ...

  6. java定时器实现总结

    前言:Java定时器目前主要有3种实现方式:JDK组件,Spring Task,Quartz框架. 1. JDK组件(1) java.util.TimerTask MyTimerTask.java: ...

  7. Kudu系列-基础

    Apache Kudu 支持Insert/Update/Delete 等写操作(Kudu 随机写效率也很高, 实测对一个窄表做全字段update, 其速度达到了Insert速度的88%, 而verti ...

  8. vue-cli3 第三版安装搭建项目

    Vue CLI是一个用于快速Vue.js开发的完整系统 3.X较2.X结构变了很多,更优雅,开发体验更好 官方:https://cli.vuejs.org/guide/ 安装:https://cli. ...

  9. PHP中关于PDO数据访问抽象层的功能操作

    PDO:数据访问抽象层 具有三大特点: 1.可以访问其它数据库  所有数据库都可以 2.具有事务功能 3.带有预处理语句功能(防止SQL注入攻击) 实例操作代码如下: <?php //1.造PD ...

  10. java基础_0204:运算符

    掌握Java中标识符的定义: 掌握Java中数据类型的划分以及基本数据类型的使用原则: 掌握Java运算符的使用: 掌握Java分支结构.循环结构.循环控制语法的使用: 掌握方法的定义结构以及方法重载 ...