文档章节

HIbernate映射关系之一对一(双向)

梁阳波
 梁阳波
发布于 2014/06/10 10:35
字数 305
阅读 330
收藏 2

1:student  学生类 

2:studentLog 学生日志类 

3:studentExtend 学生扩展类

对于普通的业务需求,可能只需要student、studentLog就可以了,但此处模仿多个类来做映射:

@Entity
@Table(name="student")
public class Student implements Serializable {
 private Integer id;
 private String username;
 private StudentLog studentLog;
 private StudentExtend studentExtend;
 
 @Id
 @GeneratedValue(strategy=GenerationType.AUTO)
 public Integer getId() {
  return id;
 }
 
 /fetch=FetchType.LAZY 设置懒加载
 //cascade={CascadeType.REMOVE} 级联删除(注意不是在Studentlog、studentExtend设置)
 //mappedBy="student"
 @OneToOne(fetch=FetchType.LAZY,cascade={CascadeType.REMOVE},mappedBy="student")
 public StudentExtend getStudentExtend() {
  return studentExtend;
 } 
 @OneToOne(fetch=FetchType.LAZY,cascade={CascadeType.REMOVE},mappedBy="student")
 public StudentLog getStudentLog() {
  return studentLog;
 }
 @Column(name="username",unique=true,nullable=false)
 public String getUsername() {
  return username;
 }
 //tXxx略

 

@Entity
@Table(name="student_log")
public class StudentLog implements Serializable {
 private Integer id;
 private Student student;
 private String message;
 
 @Id
 @GeneratedValue(strategy=GenerationType.AUTO)
 public Integer getId() {
  return id;
 }
 @Column(name="message",unique=false,nullable=false)
 public String getMessage() {
  return message;
 }
 @OneToOne(fetch=FetchType.LAZY)
 @JoinColumn(name="student_id")
 public Student getStudent() {
  return student;
 }
 //etXxx略
@Entity
@Table(name="student_extend")
public class StudentExtend implements Serializable {
 private Integer id;
 private Student student;
 private String extendMessage;
 
 @Id
 @GeneratedValue(strategy=GenerationType.AUTO)
 public Integer getId() {
  return id;
 }
 @Column(name="extend_message",unique=false,nullable=false)
 public String getExtendMessage() {
  return extendMessage;
 }
 @OneToOne(fetch=FetchType.LAZY)
 @JoinColumn(name="student_id")
 public Student getStudent() {
  return student;
 }
//tXxx略

 然后直接调用session.delete删除student(主表)记录时,studentLog、studentExtend等从表也会被删除

 studentService.deleteById(1);

© 著作权归作者所有

共有 人打赏支持
梁阳波
粉丝 2
博文 22
码字总数 4705
作品 0
抚州
程序员
私信 提问
Hibernate映射——一对一双向关联映射(六)

我们介绍了一对一的单向关联映射,单向是指只能从人(Person)这端加载身份证端(IdCard),但是反过来,不能从身份证端加载人得信息。如图所示: 关键原因在于对象模型具有方向性: 单向:一...

architect刘源源
2018/01/11
3
0
史上最简单的Hibernate4视频教程(附源码和笔记)

Hibernate4是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合...

2846613430
2016/04/08
1K
0
Hibernate框架学习之注解配置关系映射

上篇文章我们通过注解对映射了单个实体类,但是具体项目中往往实体类之间又是相互关联的,本篇文章就是从实体类之间存在的不同关联角度,具体学习下如何映射他们之间的关联,主要涉及内容如下...

Single_YAM
2017/11/15
0
0
Hibernate系列——总结篇(九)

概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我们也说它是数据持久层的框架。 我们从上一句话可以看出Hibernate的核心:面向对象、关系映射以及数据持久化。前面两个概念很容...

architect刘源源
2018/01/11
5
0
Hibernate映射解析——七种映射关系

首先我们了解一个名词ORM,全称是(Object Relational Mapping),即对象关系映射。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的...

universeye
2014/05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
今天
2
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
2
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
4
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
4
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部