Hibernate 数据关联

一对一关联(包括两种类型)

1、主键关联

2、唯一外键关联

一个典型实例:中国公民只允许有一张身份证. 以T_User 和T_Idcard为例

 T_User(                                            id   int   <pk,fk2> ,

         name   varchar(50) ,

         age   int

) ;

  T_Idcard(

        id    int <pk> ,

        serial   varchar(30) ,

        expiry  int

) ;

通过one-to-one节点进行声明

TUser.hbm.xml

<one-to-one  name="idcard"                        一对一映射节点

         class="com.gjun.vo.Idcard"        

         cascade="all"           级联关系

/>

级联(cascade)在Hibernate关系中是个非常重要概念.它指的是当主控方执行操作时,关联对象(被控方)是否同步执行同一操作.

TIdcard.hbm.xml

<id name="id" column="id">

     <generator class="foreign">   foreign主键生成

                <param  name="property">user</param>

    </generator>

</id>

<one-to-one   name="user"                          一对一映射节点

               class="com.gjun.vo.User"

               constrained="tue"      约束

/>

---------------------------------------------------------------------------------------------------------------------------------------------------------

双向一对多关联

实例:一个用户拥有办公办公室地址,家庭地址等多个地址属性.

TUser.hbm.xml

<set   name="addresses"

          inverse="true"      控制方向反转 

          lazy="false" cascade="all">

     <key column="user_id">    

    </key>

    <one-to-many class="com.gjun.vo.Address"/>

</set>

TAddress.hbm.xml

<many-to-one  name="user"

                         class="com.gjun.vo.User"

                         cascade="none"

                         column="user_id"

                         not-null="true"

/>

------------------------------------------------------------------------------------------------------------------------------------------------------------------

一对多双向自关联
同一个类既扮演了one的角色,又扮演了many的角色。典型的应用案例就是一个种类分层模型。

商品分类表(ProductType):

  id    int(11)   <pk> ID号          -----自身外键参照

  parent_id    int(11)  <fk>  父类ID号

  cate_no       varchar(50)   类别编码

  cate_name   varchar(50)   类别名称

 

实体类:

  id :  Integer

  parent : ProductType

  childs  : Set

  cateNo : String

  cateName : String

 

<hibernate-mapping>

    <class  name="com.gjun.vo.ProductType"   table="ProductType">

              <id    name="id"  type="integer"  column="ID">

                         <generator  class="identity" />

             </id>

             <many-to-one  name="parent"

                                      column="PARENT_ID"

                                      class="com.gjun.vo.ProductType"

                                      lazy="false"/>

            <set  name="childs"

                     cascade="all"

                     lazy="false"

                     inerse="true">

              <key  column="PARENT_ID"  />

             <one-to-many  class="com.gjun.vo.ProductType" />

</hibernate-mapping>

内容概要:该PPT详细介绍了企业架构设计的方法论,涵盖业务架构、数据架构、应用架构和技术架构四大核心模块。首先分析了企业架构现状,包括业务、数据、应用和技术四大架构的内容和关系,明确了企业架构设计的重要性。接着,阐述了新版企业架构总体框架(CSG-EAF 2.0)的形成过程,强调其融合了传统架构设计(TOGAF)和领域驱动设计(DDD)的优势,以适应数字化转型需求。业务架构部分通过梳理企业级和专业级价值流,细化业务能力、流程和对象,确保业务战略的有效落地。数据架构部分则遵循五大原则,确保数据的准确、一致和高效使用。应用架构方面,提出了分层解耦和服务化的设计原则,以提高灵活性和响应速度。最后,技术架构部分围绕技术框架、组件、平台和部署节点进行了详细设计,确保技术架构的稳定性和扩展性。 适合人群:适用于具有一定企业架构设计经验的IT架构师、项目经理和业务分析师,特别是那些希望深入了解如何将企业架构设计与数字化转型相结合的专业人士。 使用场景及目标:①帮助企业和组织梳理业务流程,优化业务能力,实现战略目标;②指导数据管理和应用开发,确保数据的一致性和应用的高效性;③为技术选型和系统部署提供科学依据,确保技术架构的稳定性和扩展性。 阅读建议:此资源内容详尽,涵盖企业架构设计的各个方面。建议读者在学习过程中,结合实际案例进行理解和实践,重点关注各架构模块之间的关联和协同,以便更好地应用于实际工作中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值