精华内容
下载资源
问答
  • Ethercat PDO映射关系

    万次阅读 2018-03-26 09:59:28
    PDO映射关系 pod相关的映射和配置

    PDO映射关系

    pod相关的映射和配置

    这里写图片描述

    参考

    https://blog.csdn.net/x356982611/article/details/79694121

    展开全文
  • 上篇博客已经对Hibernate和ORM以及关系映射做了简单介绍:博客链接:Hibernate关系映射,这篇博客来学习下Hibernate的其中映射关系。 一、单向一对一关系映射(one-to-one)  两个对象之间具有一对一的关系,例如...


         上篇博客已经对Hibernate和ORM以及关系映射做了简单介绍:博客链接:Hibernate关系映射,这篇博客来学习下Hibernate的七种映射关系。


    一、单向一对一关系映射(one-to-one)

           两个对象之间具有一对一的关系,例如:

           两种策略可以实现一对一关联映射:


          1、主键关联:两个对象具有相同的主键值,表明他们之间的一一对应的关系;

           

         

           表中数据如下图所示:

          


          2、唯一外键关联,外键本来是用于多对一的配置,加上唯一之后可以用来标识一对一关联关系,多对一的特殊情况嘛。

           

         注:这种方式采用的是<many-to-one>标签映射,指定多的一段unique为true,这样就限制了多的一端的多重性为一。


         注:主键关联映射的扩展性不好,所以我们一般情况下会采用唯一外键关联来解决问题。


    二、单向一对多关系映射(one-to-mang)

        

         一对多关联映射:在多的一段加入一个外键,指向一的一端。

         

        

         表中数据如下图所示:

          

       关系映射代码:在一的一段加入如下代码:

    <set name="students">  
          <key column="classesid"/>  
          <one-to-many class="com.hibernate.Student"/>  
    </set>  

        这种映射存在缺点:因为多的一端Student不知道Classes的存在,Student没有维护Classes的关系,所以在保存Student数据时classesid是为null值,如果将该字段设置为非空,数据无法保存。


    三、单向多对一关系映射(many-to-one)


        


       表中数据如下图所示:

       

        关系映射代码:在多的一段加入如下代码:  

    <many-to-one name="group" column="groupid"/>  

     

    注:一对多与多对一的区别在于维护的关系不同

           一对多维护的关系是:一指向多的关系,有了此关系,在加载一的时候可以将多加载上来

           多对一维护的关系是:多指向一的关系,有了此关系,加载多的时候可以将一加载上来


    四、单向多对多关系映射(many-to-many)


        多对多关联映射:需要增加一张表才能完成基本映射:

        

        

        表中数据如下图所示:

        


           映射代码:在user的一端加入如下标签映射:   

    <set name="roles" table="t_user_role">  
         <key column="user_id"/>  
         <many-to-many class="com.hibernate.Role" column="role_id"/>  
    </set>  

    五、双向一对一关系映射

        与单向一对一进行比较,需要在IDCard加入<one-to-one>标签,只是影响加载

        

         

       表中数据如下图所示:



       在IDCard端加入如下映射代码:  

    <one-to-one name="person"/>  
       

       在Person端加入如下映射代码:

      

    <one-to-one name="person"property-ref="idCard"/> 

      注: 一对一唯一外键关联双向采用<one-to-one>标签映射,必须指定<one-to-one>标签中的property-ref属性为关系字段的名称


    六、双向一对多关系映射

         双向一对多:在一的一端集合上采用<key>标签,在多的一端加入一个外键,

                     在多的一端采用<many-to-one>标签

                     主要为了解决一对多单向关联的缺陷

                     <key>标签和<many-to-one>标签加入的字段保持一致,否则产生数据混乱



      映射代码:

            在Classes一端加入:

           

    <set name="students"inverse="true">  
           <key column="classesid"/>  
          <one-to-many class="com.hibernate.Student"/>  
    </set>  

         在Student的一端加入:

      

    <many-to-one name="classes" column="classesid"/>  

       inverse属性:

          inverse属性默认为false,为false表示本端可以维护关系,如果inverse为true,则本端不能维护关系,会交给另一端维护关系,本端失效。所以一对多关联映射我们通常在多的一端维护关系,让一的一端失效。


    七、双向多对多关系映射

         

       双向多对多 :两端都能将对方加载上来,和单向多对多的区别就是双向需要在两端都加入标签映射。


      Role端加入映射代码:

      

    <set name="users" table="t_user_role">  
           <key column="role_id"/>  
           <many-to-many class="com.hibernate.User" column="user_id"/>  
    lt;/set> 

      User端加入映射代码:

       

    <set name="roles" table="t_user_role">  
          <key column="user_id"/>  
          <many-to-many class="com. hibernate.Role" column="role_id"/>  
    lt;/set>  

    总结:

         这几种关系在我们建立关系映射的时候很常用,也比较容易混淆,多多理解,多多实践。


    展开全文
  • 一、映射关系 One to Many 映射关系 多对一单向外键关联(XML/Annotation) 一对多单向外键关联(XML/Annotation) 一对多双向外键关联(XML/Annotation) Many to Many 映射关系 多对多单向外键关联(XML/Annotation) ...

    续set映射自定义对象的用法
    element标签:使用在能直接映射到表中的hibernate支持的java类型数据
    one-to-many、many-to-one:使用在映射自定义类中

    • One to Many映射关系
      • 单向多对一外键关联(XML/Annotation)(xml和annotation都实现了)
      • 单向一对多外键关联(XML/Annotation) (xml和annotation都实现了)
      • 双向一对多外键关联(XML/Annotation) (xml和annotation都实现了)
        注: Project中使用XML/Annotation时应统一

    一、单向多对一
      例子:一个人有多本书,每本书对应一个人,能通过书查找修改人的信息,不能通过人查找修改书的信息,Book为多的一方,只需要在Book原有的xml中添加many-to-one映射自定义类
    类属性变化:Book类中要添加User类的对象,并提供get和set方法,User类无需修改属性

    • XML

    Book类

    <hibernate-mapping>
    	<class name="entity.Book" table="hbn_bookr" >
    		<many-to-one name="user" class="entity.User" column="user_id"/>
    	</class><!--name属性名,class属性对应的类位置,类名大写,column字段名-->
    </hibernate-mapping>
    
    • Annotation:

    Book类

    @ManyToOne()	
    @JoinColumn(name="user_id",referencedColumnName="id")	
    //name外键列的字段名,referencedColumnName是关联少的一方的属性名
    private User user;
    

    注:单向多对一注解如果不添加@JoinColumn()新增字段名则会按默认的关联属性名_id

    二、单向一对多
      例子:一个人有多本书,每本书对应一个人,能通过人查找修改书,不能通过书查找修改人的信息,
    类属性变化:User中要添加泛型为Book类的set集合,用来存储多个书的对象,提供get和set方法,Book类无需修改属性

    • XML

    User类

    <hibernate-mapping>
    	<class name="entity.User" table="hbn_user" >
    		<set name="books">	<!--name属性名,class属性对应的类位置-->
    			<key column="uid"/>	<!--比较特殊,会在多的一方添加外键列维护,取字段名为少的一方-->
    			<one-to-many class="entity.Book"/>
    		</set>
    	</class>
    </hibernate-mapping>
    
    • Annotation:

    User类

    @OneToMany()
    @JoinColumn(name="uid")
    private Set<Book> books = new HashSet<Book>();	
    //set不可存储重复的值,提前初始化,方便用get存值
    

      注:单向一对多注解如果不添加@JoinColumn(),则会自动生成以"少的一方的表名_多的一方的表名"命名的表来维护关系,如hbn_user_hbn_book,如果添加注解,像上述代码,则仍然会在多的一方添加column维护关系

    三、双向一对多
      例子:每本书对应一个人,一个人对应多本书,可相互查找并修改信息,主要多的一方维护,少的一方响应
    类属性变化:Book类添加User属性,User类添加泛型为Book的set属性,提供get和set方法

    • XML: 注意两个类的xml中的column都需要以少的一方命名(key标签和many-to-one标签加入的字段保持一致),否者会在多的一方表中产生两个字段列,造成冗余,因为单向一对多也是通过在多的一方添加外键列来维护关系的,可设置在一的一方inverse="true"让出管理关系权,让多的一方管理

    Book类

    <hibernate-mapping>
       <class name="entity.Book" table="hbn_bookr" >
       	<many-to-one name="user" class="entity.User" column="uid"/>
       </class><!--name属性名,class属性对应的类位置,类名大写,column字段名-->
    </hibernate-mapping>
    

    User类

    <hibernate-mapping>
    	<class name="entity.User" table="hbn_user" >
    		<set name="books" inverse="true">	<!--name属性名-->
    			<key column="uid"/>	<!--比较特殊,会在多的一方添加外键列维护,取字段名为少的一方-->
    			<one-to-many class="entity.Book" /><!--class属性对应的类位置-->
    		</set>
    	</class>
    </hibernate-mapping>
    
    • Annotation:

    Book类

    @ManyToOne()	
    @JoinColumn(name="uid",referencedColumnName="id")//在Book类的表中生成uid,是关联Userid的外键
    private User user;
    

    User类

    @OneToMany(mappedBy="user")	//相当于inverse=true,让出关系维护权给book类
    private Set<Book> books = new HashSet<Book>();	
    

      注:单向关系的缺点还是比较明显的,比如一对多单向,多的那一方没有任何关于另一方的信息,多对一单向则是反之。所以正常使用时,双向一对多是最常用的,双方都有彼此的信息。

    资料来源:
    单向多对一映射
    单向一对多映射和双向一对多映射

    展开全文
  • hibernate映射关系

          在hibernate中,由于是对对象进行操作,但是要实现表与表之间的关系,是怎么样实现的呢?


    一、Hibernate的映射

          Hibernate是对对象进行操作,Hibernate的映射是描述数据库表的结构,表中的字段在类中被描述成属性,将


    来就可以实现把表中的记录映射成为该类的对象了。


    二、映射的种类

          

           这里映射关系由上图已经做了具体的介绍,现在来介绍下利用注解方式来实现多种映射关系的:


    双向:

         1.一对一

          有外键的一边


    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name= "device_id_")
    private DeviceInfo deviceInfo;
    
    

           另一边:

    @OneToOne(mappedBy = "deviceInfo")
    private SiteInfo siteInfo;
    
    



           2.一对多:

     @OneToMany(targetEnitity=Address.class,mappedBy="person")
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "device_id_")
     private DeviceInfo deviceInfo;

           3.多对多


        @ManyToMany  
        @JoinTable(name = "tbl_student_teacher", joinColumns = @JoinColumn(name = "teacher_id"), inverseJoinColumns = @JoinColumn(name = "student_id"))  
        private Set<Student> students = new HashSet<Student>();  
    


    总结:

              其实映射关系很简单,就是对象与对象关系的一种体现,用映射的方式将其联系到一起。

    展开全文
  • 修改主机名和IP的映射关系

    千次阅读 2020-03-11 17:47:18
    Ip地址和主机名的映射关系
  • FFmpeg图解:URL映射关系

    千次阅读 2017-04-11 19:01:09
    FFmpeg图解:URL映射关系
  • 使用mybatisPlus时,会确定实体类和数据的映射关系 具体的映射方法有两种: 1、默认:采用驼峰映射规则,例如MyUserTable 对应的数据库表为 my_user_table ; TEMyUserTable 对应表名为t_e_my_user_table; 2、注解...
  • 在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用...
  • EF使用EntityTypeConfiguration配置映射关系 我们可以定义一个继承自EntityTypeConfiguration   实体类关系的映射 实体类映射中,关系的映射配置在关系的两端都可以配置。例如,用户信息与登录信息的 ...
  • EntityTypeConfiguration 映射关系

    千次阅读 2018-04-20 10:10:03
    我们可以定义一个继承自... 实体类关系映射实体类映射中,关系映射配置在关系的两端都可以配置。例如,用户信息与登录信息的 一对多 关系可以在用户信息端配置:HasMany(m =&gt; m.LoginLogs).W...
  • 浅析 信息安全 与 社会关系 的 映射关系
  • 平面纹理与球面纹理映射关系

    千次阅读 2020-02-22 00:19:35
    平面纹理与球面纹理映射关系使用顶点的法向量生成纹理坐标使用顶点的位置向量生成纹理坐标参考链接 球面纹理映射就是将一个平面纹理映射到球面上,见下图:     实现球面纹理映射有两种方法,一种是使用顶点的...
  • java注解配置hibernate映射关系

    千次阅读 2014-12-23 00:31:43
    实体和数据库之间存在某种映射关系,hibernate根据这种映射关系完成数据的存取。在程序中这种映射关系由映射文件(*.hbm.xml)或者java注解(@)定义。 本文以java注解的形式总结映射关系配置。 实体类组件以及注解...
  • topic 与 broker 之间存在映射关系

    千次阅读 2018-07-10 22:59:52
    kafka中,调用send()函数,发送消息时,没有指定broker,topic 与 broker 之间存在映射关系映射关系保存在元数据中,由kafka底层去维护。连接池ProducerPool,包含SyncProducer。SyncProducer负责维持 producer与...
  • Mybatis之表之间映射关系总结

    千次阅读 2016-12-23 21:58:42
    1.什么是表之间映射关系
  • SQLAlchemy中的映射关系有四种,分别是一对多,多对一,一对一,多对多 理解好映射关联关系,对后续多表查询,对象间关系非常重要。 下面可以先看看资料,如果不太理解可以看看本文,循序渐进的了解知识点。 官网是最好...
  • codesys runtime 修改默认串口映射关系

    千次阅读 2017-11-29 20:41:01
    在codesys runtime的配置文件中添加tty,并且修改COM口映射关系
  • Hibernate各种关联映射关系梳理

    千次阅读 2015-09-02 16:56:42
    Hibernate各种关联映射关系梳理 多对一的单向关联关系 1. 了解表结构及其关系 采用两张表作为今天的样表:   2. 了解类结构和映射文件: 有两个类: Street类的映射文件: Street类的类结构: ...
  • Demo.java:package ... import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set;... * entrySet()方法,获取所有键值对对象(映射关系) * 实现步骤: * 1. 调用m...
  • SPP-Net中的特征映射关系

    千次阅读 2017-06-02 11:34:14
    SPP-Net中的特征映射关系 感受野
  • 修改主机名和IP的映射关系 /etc/hosts

    千次阅读 2020-03-13 11:06:34
    修改主机名和IP的映射关系
  • Hibernate映射解析——七种映射关系

    万次阅读 多人点赞 2012-07-19 01:00:33
    首先我们了解一个名词ORM,全称是(Object Relational Mapping),即对象关系映射。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的...
  • Json格式与对象之间的映射关系

    千次阅读 2018-03-01 17:49:38
    Json格式与对象之间的映射关系大括号与中括号 大括号({}):可以看作是一个对象,或者对应于程序中的对象,对象中可以包含属性 大括号{}内部是采用key:value的形式,key可以是string,int等,value可以是string,int,...
  • hibernate使用注解配置映射关系

    万次阅读 2014-04-19 14:49:24
    在hibernate3.6.10中,与使用XML文件配置映射关系只有两点区别
  • elasticsearch head插件 查询索引映射关系 http://192.168.1.110:9200/student/ GET 直接加索引名称即可 能查到所有信息 第二种方式 利用head插件图形工具: 进入概要首页,选择索引,然后索引信息, 直接...
  • 这篇博文可以在你基本了解逻辑地址空间和物理地址空间的概念后,为增强理解可通过我画的示意图来理解,本文会深入一些概念,以达到全面掌握该映射关系的目的。画图不易鸭,点个赞再走呗(✿◡‿◡) 逻辑地址空间及...
  • Hive表与内部数据的映射关系 1. 在练习Hive之前,先创建一个文件夹来存放Hive的练习数据。 命令:cd /export/data/ ,然后创建对应文件夹: mkdir hivedata 2. 进入hivedata文件夹,创建一个名为1.txt 的文件,将...
  • android display: framebuffer 映射关系

    千次阅读 2013-09-25 10:48:51
    framebuffer 映射关系: platform infomation :linux; mtk;overlay
  • 这一节主要讲利用elasticsearch head插件 查询索引映射关系.......  打开"符合查询",进行下面操作:  http://192.168.19.128:9200/ddocument/ GET 直接加索引名称即可 能查到所有信息: 第二种方式...
  • Hibernate映射解析——七种映射关系 分类: 学习总结 SSH2012-07-19 01:00 12067人阅读 评论(47) 收藏 举报 hibernate数据库userclass生活table  首先我们了解一个名词ORM,全称是(Object ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,268
精华内容 24,907
关键字:

映射关系