千家信息网

*.hbm.xml文件——单表映射、双向多对一以及多对多的配置

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这是单表映射的配置:Student.hbm.xml
千家信息网最后更新 2025年11月09日*.hbm.xml文件——单表映射、双向多对一以及多对多的配置

这是单表映射的配置:

Student.hbm.xml

                                                                                                                                                                

配置双向一对多或者双向多对一的配置:

Grade.hbm.cml

                                                                                                                                                                                                                                                                                                                           

Student.hbm.xml

                                                                                                                                                                                                                        

配置多对多关联关系的配置,数据库中有三个表project,employee,proemp(关联表)

Project.hbm.xml

                                                                                                                                                                                                                                                

Employee.hbm.xml

                                                                                                                                                                                                                                                
/* * 多对多关联关系的配置 * 同时建立了Project到Employee之间的双向关联关系 * 关联关系的维护由Project方来处理(在Employee.hbm.xml中的属性中设置inverse="true") *  并且在保存Project对象时会一并保存Employee对象 */


Hibernate的Generator属性有7种class,本文简略描述了这7种class的意义和用法。

1、identity:用于MySql数据库。特点:递增

< id name="id" column="id">    < generator class="identity"/>< /id>

注:对于MySql数据库使用递增序列时需要在建表时对主键指定为auto_increment属性。

2、sequence:用于Oracle数据库

< id name="id" column="id">   < generator class="sequence">     < param name="sequence">序列名< /param>   < /generator>< /id>

3、native:跨数据库时使用,由底层方言产生。

Default.sequence为hibernate_sequence

< id name="id" column="id">   < generator class="native"/>< /id>

注:使用native时Hibernate默认会去查找Oracle中的hibernate_sequence序列。

如果数据库中没有该序列,连接数据库时会报错。

4、hilo:通过高低位合成id,先建表hi_value,再建列next_value。必须要有初始值。

< id name="id" column="id">    < generator class="hilo">      < param name="table">high_val< /param>       < param name="column">nextval< /param>      < param name="max_lo">5< /param>    < /generator>< /id>

5、sequencehilo:同过高低位合成id,建一个sequence序列,不用建表。

< id name="id" column="id">< generator class="hilo">< param name="sequence">high_val_seq< /param>< param name="max_lo">5< /param>< /generator>< /id>

6、assigned:用户自定义id;

< id name="id" column="id">< generator class="assigned"/>< /id>

7、foreign:用于一对一关系共享主健时,两id值一样。


当设置了cascade属性不为none时,Hibernate会自动持久化所关联的对象

cascade属性的可能值有

all: 所有情况下均进行关联操作,即save-update和delete。
none: 所有情况下均不进行关联操作。这是默认值。
save-update: 在执行save/update/saveOrUpdate时进行关联操作。
delete: 在执行delete 时进行关联操作。

all-delete-orphan: 当一个节点在对象图中成为孤儿节点时,删除该节点。比如在一个一对多的关系中,Student包含多个book,当在对象关系中删除一个book时,此book即成为孤儿节点。



关联 数据 数据库 配置 对象 属性 序列 节点 双向 孤儿 情况 这是 高低 简略 一对一 三个 不用 之间 同时 多个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 现代网络技术手段概论论文 数据库和服务器的连接方式 数据库图片扫描软件 数据库的完整性 一致性 加强网络安全建设申论怎么写 同花顺数据库理想论坛 德生科技互联网人社 网络安全教育优质课件 软件开发流程文档管理 连接zmc数据库 贵州销售软件开发排行榜 获取问题数据库的应用 绝地求生未来之役亚洲服务器英文 网络安全后马 云服务器管理控制台下载 安全应急应用大数据库 服务器采用管理芯片资质证明 网吧服务器怎么工作 杭州攀克网络技术有限公司官网 高校数据库深入学院宣传方案 网络安全毕业后可以从事什么工作 安徽服务器虚拟化价格 服务器可以应用多开吗 国外免费看云服务器 贵州省网络安全现状分析 数据库端口转换工具 智联网络技术有限公司的收入 什么描述数据库的全局逻辑结构 分离和附加数据库是备份吗 2017国家网络安全法
0