一对一关联保存:

说明: 留言状态表: 记录用户的留言信息,如留言人openid,留言时间等…(主表)
用户留言内容表: 记录用户的留言内容,id与状态表一对一(从表)

留言表实体类配置:(主表)
添加一对一关联的从表

// one to oneprivate com.rhtcms.cms.entity.main.CustomerMessageContent customerMessageContent;//对应内容表信息

留言内容表配置:(从表)
添加一对一关联的主表:

 //one to oneprivate com.rhtcms.cms.entity.main.CustomerMessage customerMessage;//对应客户留言状态表

留言表hbm.xml配置:(主表)
1.主表id采用uuid随机生成
2.设置one-to-one 的从表

<id name="id" type="string" column="id"><generator class = "uuid"/></id>
<one-to-one name="customerMessageContent" class="CustomerMessageContent"  cascade="all"></one-to-one>

留言内容表hbm.xml配置:(从表)
1.主键生成策略使用:foreign 使用另外一个相关联的对象的主键作为该对象主键。主要用于一对一关系中。
2.设置one-to-one 的主表

<id name="messageId" type="string" column="message_id"><generator class="foreign"><param name="property">customerMessage</param></generator>
</id><one-to-one name="customerMessage" class="CustomerMessage"  constrained="true"  ></one-to-one>

保存方法:
思路:1.保存时先set主表数据,先将主表保存
2: set从表数据,其中关键一步,从表须set刚刚保存的主表,然后再保存从表

CustomerMessage customerMessageSave = mng.save(customerMessage); //保存状态表信息,并获取uuid
CustomerMessageContent customerMessageContent = new CustomerMessageContent();//首先对留言,反馈信息进行敏感词过滤
String wordCensor = cmsMng.replaceSensitivity(questionText);
customerMessageContent.setQuestionText(wordCensor);//设置内容表内容
customerMessageContent.setCustomerMessage(customerMessageSave);//设置从表中主表的属性
contentMng.save(customerMessageContent);//同时保存内容表信息

一对多/多对一保存

说明:1.活动表:保存活动信息,记录活动报名的信息,如场景,主办方,报名时间…(主表)
2.自定义报名信息表,因为报名要素不确定性,eg: 报名要素有 ,电话,姓名,门票id依据…(从表)

活动表实体类配置:(主表)
1.添加自定义报名信息从表

private Set<ActivitySign> signs = new HashSet<ActivitySign>();

自定义报名要素实体类配置:(从表)
1.添加关联的活动表实体类

private Activity activity;//活动表信息

活动表hbm.xml配置:(主表)
1.主键采用 "native"策略(hilo+identity+sequence三选一)
ps:根据底层数据库对自动生成标识符的能力来选择i dentity、sequence、hilo三种生成器中的一种,适合跨数据库平台开发
2.配置一对多的报名信息从表

<id name="id" type="java.lang.Integer" column="activity_id"><generator class="native"/></id>
<set name="signs" cascade="save-update" lazy="false"><cache usage="read-write"/><key column="activity_id" /><one-to-many class="ActivitySign"/>
</set>

报名信息表:(从表)
配置多对一: name:主表多对一的属性 ,class: 主表实体类 column: 多对一字段

<id name="id" column="sign_id"><generator class="native"></generator>
</id>
<many-to-one name="activity" class="Activity" column="activity_id"></many-to-one>

保存方法:
保存思路
1:保存方法带两个参数: 参数1: 主表的数据 ;参数2: 从表的数据
2.实现层首先保存主表,然后再遍历从表,还是一样的,从表先设置主表,然后再保存从表

activityMng.save(bean,set);
//......下面是save方法bean = dao.save(bean);
// update by 2021年1月23日10:36:56 zqy 优化保存接口for (ActivitySign activitySign : set) {activitySign.setActivity(bean);signDao.save(activitySign);}

Hibernate的一对一,一对多/多对一关联保存相关推荐

  1. SQLAlchemy_定义(一对一/一对多/多对多)关系

    SQLAlchemy_定义(一对一/一对多/多对多)关系 目录 Basic Relationship Patterns One To Many One To One Many To Many Basi ...

  2. 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多

    7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...

  3. Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作

    Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作,单表查询,多表查询 一丶表与表之间的关系 背景: ​ ​ ​  ​ ​ 由于如果只使用一张表存储所有的数据,就会操作数 ...

  4. mybatis的一对一 一对多 多对多

    mybatis的一对一 一对多 多对多 1.表 2.建表语句 order_t表 CREATE TABLE `order_t` ( `id` int(11) NOT NULL, `user_id` in ...

  5. JPA 一对一 一对多 多对一 多对多配置

    1 JPA概述 1.1 JPA是什么 JPA (Java Persistence API) Java持久化API.是一套Sun公司 Java官方制定的ORM 方案,是规范,是标准 ,sun公司自己并没 ...

  6. day 69-70 一对一 一对多 多对一联表查询

    day 69 orm操作之表关系,多对多,多对一多对一/一对多,多对多{类中的定义方法}day691. 昨日内容回顾1. 单表增删改查2. 单表查询API返回QuerySet对象的:1. .all() ...

  7. Django一对一 ,一对多,多对多

    Django 数据库一对多,多对多 目录 app01/models.py app01/views.py app01/urls.py Python_Django/urls.py 目录 app01/mod ...

  8. 初学者易上手的SSH-hibernate04 一对一 一对多 多对多

    这章我们就来学习下hibernate的关系关联,即一对一(one-to-one),一对多(one-to-many),多对多(many-to-many).这章也将是hibernate的最后一章了,用于初 ...

  9. ef mysql 外键 一对一_MySQL 外键 一对一 一对多 多对多 复制

    #外键 ## 1,学习外键首先要明白表与表之间的关系 ​ 首先要换位思考 在考虑了这边 还要考虑另一边 ​ 然后在下定论### 判断表关系的语法 #### 图书与出版社 ​ 一本书可不可以有多个出版社 ...

  10. Mybatis中的关系映射(一对一,一对多,多对多)

    在网上寻了很久,大多数讲关系性的文章都是大篇幅的去将表照搬上来,本来就很生硬,此文就不在讲述关系性映射的具体实现,转而从浅层来讲讲其概念性. 1.1 关联关系概述 在关系型数据库中,多表之间存在着三种 ...

最新文章

  1. python java web_Python 与 Java 使用 websocket 通信
  2. VS2013中使用git发布解决方案master分支的时候出现错误
  3. jQuery中的队列是什么?
  4. Java实现上传文件到指定服务器指定目录
  5. 朱峰谈概念设计(六):美术部门
  6. Processing绘制四边形
  7. 异常处理——MysqlCan't connect to local MySQL server through socket '/v ar/lib/mysql/mysql.sock'
  8. 重新定义“人货场”:淘宝情景计算探索实践
  9. vbs调用WebService -- 使用xmlhttp
  10. Sonar6.0应用之一:基于centos7.2安装
  11. Oracle中 drop user 和 drop user cascade 的区别
  12. spring-boot使用教程(一):让程序跑起来
  13. 郑州大学linux试题,郑州大学Linux讲义 PPT
  14. zynq文档学习之GPIO和MIO和EMIO的基本介绍
  15. Qt安装与使用(小白专用教程)
  16. 正向代理和反向代理(概念特点区别)
  17. docker与宿主机通信
  18. Python地理数据处理 四:矢量数据读写(二)
  19. 电脑提醒没有权限在此位置保存文件怎么办?
  20. Laragon 在Windows中快速搭建Laravel本地开发环境

热门文章

  1. TP-LINK_841N_V8路由器硬改升级OpenWRT记
  2. postgresql用户和角色
  3. 算高差改正数的计算机程序,水准测量中测量高差的改正数怎么计算?
  4. matlab怎么新建文件运行不了,关于:Matlab中直接双击fig文件运行出错,而从.m文件运行却不会出错问题的一点心得...
  5. python 计算字符串表达式_python计算数学表达式
  6. 如何在EXCEL表格中加斜线表头
  7. 爬取B站弹幕并生成HTML格式的词云图
  8. wps公式如何加序号_Microsoft Word 插入公式、公式编号及交叉引用完美指南
  9. 【嵌入式 · 单片机】一文带你搞懂电机驱动模块
  10. W10笔记本电脑弄成WIFI