千家信息网

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

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这是单表映射的配置:Student.hbm.xml
千家信息网最后更新 2026年11月02日*.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安全错误 数据库的锁怎样保障安全 互联网科技股 互联网科技工作委员会 互联网科技卖菜 金诺互联网科技 金融科技创新监管互联网金融 互联网金融科技创新 百单互联网科技有限公司 上海致骋互联网科技 互联网科技实习生岗位职责 宁夏众和广鑫互联网科技有限公司 互联网科技有哪些公司 来此购互联网科技有限公司 互联网金融科技名词解释 无锡工业互联网科技有限公司 工业互联网山东科技大学 云鲸互联网络科技有限公司 版纳互联网科技选哪家 长沙易易互联网科技有限公司 互联网科技创业计划的风险分析 广东猫王互联网科技有限公司电话 互联网下的科技发展 未来的互联网科技 互联网高科技企业 联恩商钥互联网科技有限公司 湖南洣水互联网科技有限公司扣款 互联网科技商业 南通创西澳互联网科技有限公司 从那以后互联网科技有限公司 福州德业互联网科技 山东亿川互联网科技有限责任公司
0