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个配置文件
<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映射(学生-科目-成绩)的更多相关文章
- hibernate实现学生-课程-成绩
1.实体类Student package com.test.model; import javax.persistence.Entity; import javax.persistence.Gener ...
- hibernate映射的 关联关系:有 一对多关联关系,一对一关联关系,多对多关联关系,继承关系
hibernate环境配置:导包.... 单向n-1:单向 n-1 关联只需从 n 的一端可以访问 1 的一端 <many-to-one> 元素来映射组成关系: name: 设定待映射的持 ...
- [转]Hibernate映射的基本操作
++YONG原创,转载请注明http://blog.csdn.net/qjyong/article/details/1829672 Hibernate映射主要是通过对象关系映射 ...
- 【SSH系列】Hibernate映射 -- 一对多关联映射
映射原理 一对多关联映射和多对一关联映射的映射原理是一样一样的,所以说嘛,知识都是相通的,一通百通,为什么说一对多关联映射和多对一关联映射是一样的呢?因为她们都是在多的一端加入一个 ...
- 【mysql经典题目】科目成绩都大于80分\每个科目的第一名\总成绩排名
参考:http://blog.csdn.net/lifushan123/article/details/44948135 1.查询出科目成绩都大于80分的学生的名字? drop table if EX ...
- Hibernate映射--基本类映射和对象关系映射(转)
原文地址:http://blog.csdn.net/lovesummerforever/article/details/20901011 尊重原创,请访问原网址 回想一些我们在没有学习ssh的时候 ...
- Hibernate映射文件详解(News***.hbm.xml)二
转自 http://blog.csdn.net/a9529lty/article/details/6454924 一.hibernate映射文件的作用: Hibernate映射文件是Hibernate ...
- hibernate映射文件
Hibernate的持久化类和关系数据库之间的映射通常是用一个XML文档来定义的.该文档通过一系列XML元素的配置,来将持久化类与数据库表之间建立起一一映射.这意味着映射文档是按照持久化类的定义来创建 ...
- Hibernate映射文件如何配置触发器
Hibernate映射文件之触发器生成(generated属性.database-object元素) (2013-02-27 12:28:49) 转载▼ 标签: it 分类: JAVA学习笔记 这里分 ...
随机推荐
- 简述react与vue的区别
React 和Vue是现在主流的两个框架(相对来说angular用的已经少了) 两者的区别体现在以下方面 相同点: 1.react和vue都支持服务端渲染 2.都有虚拟DOM,组件化开发,通过prop ...
- 056、macvlan网络结构分析(2019-03-25 周一)
参考https://www.cnblogs.com/CloudMan6/p/7383919.html macvlan不依赖linux bridge brctl show 可以确认没有创建新的b ...
- chart.js angular组件封装(ng6)、实战配置、插件编写
前言 项目需要使用chart.js插件,由于项目是使用angular开发,那么我第一步就是先把chart.js改造成angular组件来使用. 本项目代码都可以在github上下载:项目git地址 a ...
- Android五大布局
原文地址:http://blog.51cto.com/liangruijun/632532 https://www.cnblogs.com/devinzhang/archive/2012/01/19/ ...
- node 中 安装 yarn
Yarn是Facebook最近发布的一款依赖包安装工具.Yarn是一个新的快速安全可信赖的可以替代NPM的依赖管理工具 快速安装 //在NPM 中安装npm install -g yarn MacOS ...
- 经典文摘:饿了么的 PWA 升级实践(结合Vue.js)
自 Vue.js 官方推特第一次公开到现在,我们就一直在进行着将饿了么移动端网站升级为 Progressive Web App 的工作.直到近日在 Google I/O 2017 上登台亮相,才终于算 ...
- CSRF与SSRF区别
CSRF 攻击者盗用了你的身份,以你的名义发送恶意请求.CSRF能够做的事情包括:以你的名义发送邮件,发消息,盗用你的账号,甚至于购买商品,虚拟货币转账... 发生条件: 1.登录受信任网站A,并在本 ...
- Docker 查看容器 IP 地址
查看Docker的底层信息. docker inspect 会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息 docker inspect NAMES # 查看容器所有状态信息: ...
- luogu P3235 [HNOI2014]江南乐
传送门 这题又是我什么时候做的(挠头) 首先是个和SG函数有关的博弈论,SG=0则先手必败.显然一堆石子就是一个游戏,而若干堆石子的SG值就是每堆SG的异或和,所以算出每堆石子SG就能知道答案 然后怎 ...
- JavaScript面试技巧(二):JS-Web-API
1.从基础知识到JSWebAPI 2.DOM 本质 节点操作 结构操作 3.BOM 4.事件 5.Ajax XMLHttpRequst 跨域 6.存储