Hibernate一对多关系的处理

开发 后端
本文通过示例代码向您Hibernate中如何处理一对多关系,并通过具体的配置文件做出演示。

一对多关系式Hibernate中的重要知识。感觉在Hibernate学习中最重要的也是最难的问题就是配置文件了,对于Hibernate一对多关系的配置***.hbm.xml现总结如下:

﹤?xml version="1.0" encoding="gbk"?﹥

﹤!DOCTYPE hibernate-mapping PUBLIC 

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"﹥   

﹤hibernate-mapping  package="此处填写包文件" ﹥

    ﹤class name="一对多中一的实体类的类名"  table="所对应的数据库的表名"  ﹥

       ﹤id name="所对应的实体类的属性(id)" column="所对应的数据表的字段(**_id)" 
unsaved-value="null" ﹥ ﹤generator class="native"/﹥ ﹤/id﹥ ﹤property name="对应数据表中其他的字段" ﹥﹤/property﹥
﹤set name="对应实体类中的那个集合的属性"         
   inverse="true" lazy="true" cascade="save-update" ﹥
            ﹤key column="对应其外键的字段 "/﹥
            ﹤one-to-many class="对应一对多中多的实体类的类名"/﹥
        ﹤/set﹥
    ﹤/class﹥
   ﹤class name="对应一对多中多的实体类的类名"  table="相对应的数据表名"  ﹥
        ﹤id name="id" column="对应表的主键字段名" unsaved-value="null" ﹥
            ﹤generator class="native"/﹥
        ﹤/id﹥
        ﹤property name="对应数据表中的其他字段" ﹥﹤/property﹥
        ﹤many-to-one  name="对应一对多中一的实体类的属性"
column="对应实体类中的那个集合的属性" ﹥
﹤/many-to-one﹥
    ﹤/class﹥
﹤/hibernate-mapping﹥

Hibernate一对多关系的配置代码如下:

﹤!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"﹥ ﹤hibernate-mapping package="entity.test" ﹥ ﹤class name="Person" table="Person1" ﹥ ﹤id name="pid" column="p_id" unsaved-value="null" ﹥ ﹤generator class="native"/﹥ ﹤/id﹥ ﹤property name="name" ﹥﹤/property﹥ ﹤set name="computers" inverse="true" lazy="true" cascade="save-update" ﹥ ﹤key column="p_id"/﹥ ﹤one-to-many class="Computer"/﹥ ﹤/set﹥ ﹤/class﹥ ﹤class name="Computer" table="Computer" ﹥ ﹤id name="id" column="c_id" unsaved-value="null" ﹥ ﹤generator class="native"/﹥ ﹤/id﹥ ﹤property name="name" ﹥﹤/property﹥ ﹤many-to-one name="person" column="p_id" ﹥﹤/many-to-one﹥ ﹤/class﹥ ﹤/hibernate-mapping﹥ ﹤!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"﹥ ﹤hibernate-mapping package="entity.test" ﹥ ﹤class name="Person" table="Person1" ﹥ ﹤id name="pid" column="p_id" unsaved-value="null" ﹥ ﹤generator class="native"/﹥ ﹤/id﹥ ﹤property name="name" ﹥﹤/property﹥ ﹤set name="computers" inverse="true" lazy="true" cascade="save-update" ﹥ ﹤key column="p_id"/﹥ ﹤one-to-many class="Computer"/﹥ ﹤/set﹥ ﹤/class﹥ ﹤class name="Computer" table="Computer" ﹥ ﹤id name="id" column="c_id" unsaved-value="null" ﹥ ﹤generator class="native"/﹥ ﹤/id﹥ ﹤property name="name" ﹥﹤/property﹥ ﹤many-to-one name="person" column="p_id" ﹥﹤/many-to-one﹥ ﹤/class﹥ ﹤/hibernate-mapping﹥

整个的Hibernate技术就是围绕着配置文件去发展。

【编辑推荐】

  1. 十五道关于Hibernate的面试题
  2. Hibernate一对一关系代码实例
  3. 解析Hibernate的批量删除功能
  4. 层层解析Hibernate中的事务的滥用
责任编辑:张攀 来源: 新浪博客
相关推荐

2012-02-08 13:34:08

HibernateJava

2009-06-18 14:22:06

Hibernate多对Hibernate

2009-06-03 16:27:27

Hibernate一对一关系

2009-06-03 16:18:16

Hibernate关系代码实例

2009-06-04 16:14:22

Hibernate一对Hibernate一对Hibernate多对

2009-09-22 09:55:58

Hibernate实例

2023-06-12 08:09:01

FlaskSQLAlchemy

2012-03-21 11:43:41

JavaHibernate

2010-04-15 09:09:02

Hibernate

2009-09-23 10:37:50

Hibernate一对

2009-09-23 10:57:02

Hibernate一对

2009-09-24 11:41:46

Hibernate延迟

2009-07-02 09:40:14

Hibernate的继

2011-03-25 10:49:30

Join一对多

2009-07-21 17:31:39

iBATIS一对多映射

2009-08-17 10:34:51

NHibernate一

2009-06-26 10:15:54

面试HR

2022-02-18 11:05:25

Jpa配置Address

2023-05-04 07:39:14

图神经网络GNN

2009-06-12 15:05:03

cascadeHibernate
点赞
收藏

51CTO技术栈公众号