Set集合映射:
Hibernate为集合映射提供了专用的标签元素,Set集合映射,就使用<set>标签表示:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.suxiaolei.hibernate.pojos.Customer"table="customer"><!--主键设置 --><id name="id"type="string"><column name="id"></column><generator class="uuid"></generator></id><!--属性设置 --><property name="username"column="username"type="string"></property><property name="password"column="password"type="string"></property><property name="age"column="age"type="integer"></property><property name="registerTime"column="register_time"type="timestamp"></property><set name="orders"inverse="true"cascade="all"><key column="customer_id"></key><one-to-many class="com.suxiaolei.hibernate.pojos.Order"/></set></class></hibernate-mapping><set>标签中的"name"属性表示customer对象中关系集合的属性名,"inverse"与"cascade"属性说明(参考这里)。在数据库中表示"一对多"的关系是通过外键关联的方式实现的,"多方"通过持有"一方"的主键值来确定关系,怎么持有"一方"的主键值?"多方"将使用一列来存储"一方"的主键值,然后将此列作为外键列参照"一方"的主键列。所以使用Hibernate开发时需要将两表的关系列(外键列)告诉Hibernate,<key column="customer_id"></key>就是完成这个工作的,Hibernate就能根据 "customer_id"列取出关联信息。例如:从customer表中取出一条记录后,Hibernate会根据该customer记录的主键值再从order表中查找"custom_id"列,取出值相等的记录,然后组装到Customer对象中的set集合属性中,反之亦然。因为取出来的记录(只是一些零碎的值,还没有组装成对象)需要存放到Set集合中,所以要告诉Hibernate在Set集合里面能放什么类型的数据。<one-to-many>这个标签就是完成这个工作的,"class"属性是指定这个这个Set集合里面元素的类型。<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>
<class name="com.suxiaolei.hibernate.pojos.Order"table="orders">
<id name="id"type="string">
<column name="id"></column>
<generator class="uuid"></generator>
</id><property name="orderNumber"column="orderNumber"type="string"></property>
<property name="balance"column="balance"type="integer"></property><many-to-one name="customer"class="com.suxiaolei.hibernate.pojos.Customer">
<column name="customer_id"></column>
</many-to-one>
</class>
</hibernate-mapping>
<many-to-one>标签是设置"一对多"关系中的"多方"的,name指定了哪一个属性是关系属性,"class"指定了关系属性的类型(也指定了与哪一个表关联), "column"属性是指定这个关联属性是按照"customer_id"列的值,在customer表中查询获得的。

hibernate映射文件set key one-to-many 解释相关推荐

  1. Hibernate映射文件生成器by LDDXFS

    本文由 http://www.cnblogs.com/LDDXFS/ 原创,转载请注明本文出处.(新版本的代码生成器写好了,新版本设计上更合理,会在近期对其进行相关介绍,打算在工作稳定后开源,本文为旧 ...

  2. Hibernate 映射文件

    转载 https://www.w3cschool.cn/hibernate/1vlx1iej.html Hibernate 映射文件 笔记 映射文件的主要作用:方便对数据库数据的处理,将数据库中每一个 ...

  3. 用MyEclipse自动生成hibernate映射文件和实体类

    创建web工程,使用Hibernate的时候,在工程里一个一个创建实体类太麻烦,浪费时间,现在教大家如何用MyEclipse自动生成Hibernate映射文件及实体类 方法/步骤 1 创建数据库,创建 ...

  4. 对应oracle生成java对象,Java学习笔记(十三)——通过Netbeans开发环境生成oracle数据库中表的对应hibernate映射文件...

    [前面的话] 身体慢慢已经快好了,感觉真好,哈哈. 这篇文章要通过Hibernate对数据库进行操作,而Netbeans可以直接通过数据库逆向生成对应的映射文件.基础文章,选择性阅读. [步骤] 1. ...

  5. hibernate映射文件出现should be mapped with insert=“false“ update=“false“

    hibernate映射文件出现should be mapped with insert="false" update="false" 这是属性名有重复

  6. Hibernate:映射文件元素属性说明

    为什么80%的码农都做不了架构师?>>>    Doctype <?xml version="1.0" encoding="UTF-8" ...

  7. myeclipse自动生成hibernate映射文件的过程

    在hibernate中,每个数据表对应的其实是一个实体类,每个实体类有一个对应的hbm.xml配置文件匹配,myeclipse中有个MyEclipse Database Explorer视图,它提供了 ...

  8. IntelliJ IDEA下自动生成Hibernate映射文件以及实体类

    转自:https://blog.csdn.net/qq_34197553/article/details/77718925 1.构建项目并添加项目结构配置以及配置初始参数 1.1.如图将基本的架子搭建 ...

  9. Hibernate配置文件与映射文件详解

    Hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 我们先看一下官方文档所给出的,Hibernate 体系结构的高层视图: 其中PO=P ...

最新文章

  1. crontab(定时任务操作)
  2. mycat配置访问oracle_MySQL:如何使用MyCAT实现分库分表?
  3. loj#115. 无源汇有上下界可行流
  4. Class 18 - 1 图形验证码的识别
  5. Oracle 10g升级之--PSU 升级(续)
  6. oracle学习笔记 后记
  7. [转载]下载网页中的ts视频文件
  8. caxa明细表导入零件材质_caxa中如何使明细表风格应用到任一个图纸中
  9. REST风格详细介绍
  10. JTAG的TAP状态机介绍
  11. Swiper插件的使用和介绍
  12. C# 获取可执行文件EXE(文件夹)路径大全
  13. python中raise啥意思_python raise什么意思
  14. Ubuntu格式化U盘
  15. 2.参考线平滑算法解析及实现
  16. 新媒体运营必备工具盘点(干货收藏)
  17. 三大电信运营商携号转网数据_携号转网正式上线:三大运营商谁是最大赢家?中国电信偷偷告诉你...
  18. 如何注册阿里云申请图片上传
  19. 2020A证(安全员)实操考试视频及A证(安全员)操作证考试
  20. 嵌入式以太网第三部分——以太网协议实现

热门文章

  1. 谷歌浏览器chrom兼容问题
  2. java executor 源码_Java线程池ThreadPoolExecutor深度探索及源码解析
  3. 程序员配电脑(只要三千元!)
  4. java调节音量代码_音量调节(示例代码)
  5. Hexo-neat插件优化提升访问效率
  6. cfa的pv怎么用计算机算,cfa计算器算pv使用步骤
  7. 5个MongoDB安全提示,帮助您远离困境
  8. SSH 详解(实践及应用)
  9. 购买SSL证书的注意事项有哪些
  10. 为什么接吻的时候一定要紧闭双眼?