用户登录
用户注册

分享至

hibernate一对一单向 注解

  • 作者: 卓而不群
  • 来源: 51数据库
  • 2020-10-16

一、 one―to―one关系在数据库中如何体现,在JavaBean中如何体现,在

Hibernate中如何映射one-to-one关系。            

1、 数据库中:一个表的外健对应另一个表的主健,外健要加上Unique约束(外健关联)。或者是两个表共享一个主健,表现为子表中的pk同时引用了父表的pk作外健而存在(主健关联,子表中的pk和fk为一个字段)。

2、 javaBean中:在JavaBean中增加一个属性,即另外一个对象的引用,可以单向也可以双向。

3、 在hibernate中:


A、主健映射:都是one-to-one要用foreign生成策略。

   以汽车car和发动机Engine(一对一关系)为例:

  a、主表Car.hbm.xml的写法


    

      

    

    

    

  

 注:cascade="all" 表示增删改查Car对象时都会级联增加、删除和修改Engine对象。

   级联一定是在主对象的映射文件中


  b、附表Engine.hbm.xml的写法


    

      

        car

      

    

    

    

  

注:constrained="true"表示Engine应用了Car的主健作为外健。


B、外健映射:主表中用one-to-one,通过property -ref many-to-one

  a、主表Car.hbm.xml的写法


    

      

    

    


  

注:name="engine" property-ref="car"表示engine表引用了car表的主健作为他的外健。

cascade="save-update"表示增改Car对象时都会级联增加和修改Engine对象。


  b、附表Engine.hbm.xml的写法


    

      

    

    


  

注:unique="ture" column="carid"表示为engine表中的外健carid加上唯一约束,使之一对多关系强制转化为一对一关系。


软件
前端设计
程序设计
Java相关