hibernate 一对多、多对多的配置
一对多 <class name="Question" table="questions" dynamic-insert="true"
dynamic-update="true">
<id name="id" column="id">
<generator class="native" />
</id>
<property name="title" />
<property name="content" />
<many-to-one name="user" column="user_id" class="User" />
</class>
<class name="User" table="users">
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<property name="phone" />
<set name="questions" table="questions" cascade="save-update"
inverse="false" lazy="false">
<key column="user_id" />
<one-to-many class="Question" />
</set>
</class>
user和question是一对多,在多的这一方不能设置casecade,如果设置了cascade="save-update",user删除,question因为外键关联就会报错,user也不会被删除。如果设置了cascade="delete",user删除,question也会一块删除。
不设置,user删除,question的外键user_id会置为null。如果不需要级联删除应该不加cascade。不设置的话,创建question,如果新建一个user,并为其设置了user属性,但并不会创建user
多对多
通过创建中间表users_roles 进行关联,删除其中的任何一个,中间表中包含对应id的记录都会被删掉
在user中给role设置 cascade="save-update",可以由新建user、连带着建role,但role里面没设置,就不能由新建role,来建user
<class name="User" table="users">
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<set name="roles" table="users_roles" lazy="false"
cascade="save-update"> //如果配置了save-update,则删除role会出现关联错误,所以如果不是必须可以不加casecade
<key column="user_id"></key>
<many-to-many class="Role" column="role_id">
</many-to-many>
</set>
</class>
<class name="Role" table="roles" dynamic-insert="true"
dynamic-update="true">
<id name="id" column="id">
<generator class="native" />
</id>
<property name="name" />
<set name="users" table="users_roles" lazy="false">
<key column="role_id"></key>
<many-to-many class="User" column="user_id">
</many-to-many>
</set>
</class>
hibernate 一对多、多对多的配置的更多相关文章
- Hibernate一对多关联映射的配置及其级联删除问题
首先举一个简单的一对多双向关联的配置: 一的一端:QuestionType类 package com.exam.entity; import java.util.Set; public class Q ...
- Hibernate一对多(多对一)关联关系
上一篇博文总结了 Hibernate 的一对一的关联关系, 包括基于主键的单向一对一, 基于外键的单向一对一, 基于外键的双向一对一. 下面咱们说一下 Hibernate 的一对多关联关系. 其实一对 ...
- Hibernate 一对多/多对多
一对多关联(多对一): 一对多关联映射: 在多的一端添加一个外键指向一的一端,它维护的关系是一指向多 多对一关联映射: 咋多的一端加入一个外键指向一的一端,它维护的关系是多指向一 在配置文件中添加: ...
- hibernate一对多多对一双向
注意事项:一对多,多对一双向关联,在一的一方的多的getSet集合上的oneToMany上加上mappedBy.告诉hibernate由多的方一来维护关系.这也符合逻辑 ,本来外键就是在加在多的一方. ...
- hibernate 一对多 多对一 关系表 增删改查大礼包ps二级查也有
今天来到混元气功 这货大概的意思就是你中有我 我中有你 ps 这里就要说到维护关系 ps写这个用了我一下午.......也是刚刚好复习到这里 顺便就写写 注意:一般都在多方维护关系,至于是用单向还是用 ...
- Hibernate一对多单向关联和双向关联映射方法及其优缺点 (待续)
一对多关联映射和多对一关联映射实现的基本原理都是一样的,既是在多的一端加入一个外键指向一的一端外键,而主要的区别就是维护端不同.它们的区别在于维护的关系不同: 一对多关联映射是指在加载一的一端数据的同 ...
- hibernate一对多和多对一配置
public class Dept { private int deptId; private String deptName; // [一对多] 部门对应的多个员工 private Set<E ...
- Hibernate—— 一对多 和 多对多关联关系映射(xml和注解)总结(转载)
One to Many 映射关系 多对一单向外键关联(XML/Annotation) 一对多单向外键关联(XML/Annotation) 懒加载和积极加载 一对多双向外键关联(XML/Annotati ...
- Hibernate 集合映射 一对多多对一 inverse属性 + cascade级联属性 多对多 一对一 关系映射
1 . 集合映射 需求:购物商城,用户有多个地址. // javabean设计 // javabean设计 public class User { private int userId; privat ...
- mybatis的执行流程 #{}和${} Mysql自增主键返回 resultMap 一对多 多对一配置
n Mybatis配置 全局配置文件SqlMapConfig.xml,配置了Mybatis的运行环境等信息. Mapper.xml文件即Sql映射文件,文件中配置了操作数据库的Sql语句.此文件需要在 ...
随机推荐
- sql 联合查询
SELECT NZD_Products.Prd_typename a FROM dbo.NZD_Products where dbo.NZD_Products.Prd_barcodenumber = ...
- kaggle比赛之youtube视频分类示例
1.训练模型:建bucket,建job,提交运行. BUCKET_NAME=gs://${USER}_yt8m_train_bucket_logisticmodel # (One Time) Crea ...
- 多媒体开发之rtsp 打包发流---rtsp发送
http://blog.csdn.net/ttxk/article/details/5279889 http://www.cnblogs.com/haibindev/p/3434922.html rt ...
- 【SR】论文资源相关
1. Anchored Neighborhood Regression for Fast Example-Based Super-Resolution Radu Timofte, Vincent De ...
- mybatis 处理 mysql 表中的 text类型的 字段
在mysql 中 text类型的字段: service_detail text NULL 服务描述 . 对应java文件中 model 中的 String: private String ser ...
- Laravel5.1 登录和注册
关于登录和注册 Laravel自带了一套组件实现了这一功能,我们只需要实现简单的视图即可. AuthController是专门管理用户注册和登录的. PassWordController是重置密码用的 ...
- cygwin下编译zlib源代码
本文介绍在cygwin下编译zlib源代码的方法步骤,这个过程尽管简单,但还是有一些须要注意的地方. zlib源代码下载地址: http://www.zlib.net/ 下载后.解压就会生成zlib- ...
- jQuery的validate验证插件使用方法
(1)默认校验规则(1)required:true 必输字段(2)remote:"check.php" 使用ajax方法调用check.php验证输入值(3)email:true ...
- MVC、MVP、MVVM
1 简介 演变:MVC ——> MVP ——> MVVM 英文原文:MVC vs. MVP vs. MVVM 三者的目的都是分离关注,使得UI更容易变换(从Winform变为Webform ...
- [HEOI2015]兔子与樱花[贪心]
4027: [HEOI2015]兔子与樱花 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1043 Solved: 598[Submit][Stat ...