搜索

Hibernate系列学习之映射持久化类--标识符生成策略

gecimao 发表于 2019-07-21 13:21 | 查看: | 回复:

  现在开始思考,在数据库中如何识别不同表中的不同的记录?(当然,答案就是主键,后续的学习中,你会明白主键其实是一种标识符)

  使用对象/关系持久化,其本质,一个持久化实例就是数据库某个表(或多个表)中的一个特定行(或多个行)的内存表示。(换种理解就是,我们现在可以通过一个表和一个主键来确定一条记录)

  数据库标识现在具体化来说就是可以标识某个特定数据库、数据表、字段、记录的标识。比如说,数据库名、数据表名、字段名、记录的主键等等。

  在一个数据表中有很多的副,比如说主键、外键等等,那么在持久化到Java类中时,就需要特定的标识符来区分不同的副键了,那么生成这些特定的标识符的工具就称作键生成器了。

  GenerationType.SEQUENCE Oracle不支持ID子增长列而是使用序列的机制生成主键ID,对此,可以选用序列作为主键生成策略

  GenerationType.IDENTITY 多数数据库支持IDENTITY列,数据库会在新行插入时自动给ID赋值,这也叫做ID自增长列,比如MySQL中可以在创建表时声明“AUTO_INCREMENT”, 就是一个ID子增长列(此种常用)

  GenerationType.TABLE 有时候为了不依赖于数据库的具体实现,在不同数据库之间更好的移植,可以在数据库中新建序列表来生成主键,序列表一般包含两个字段:第一个字段引用不 同的关系表,第二个字段是该关系表的最大序号。这样,只需要一张序列就可以用于多张表的主键生成。如果不指定表生成器,JPA厂商会使用默认的表,比如Hibernate在Oracle数据库上会默认使用表hibernate_sequence。

  二hibernate的持久化类和对象标识符1.1持久化类的编写规范1.1.1什么是持久化类:Hibernate是持久层的ORM映射框架,专注于数据的持久化工作。所谓的持久化,就是将内存中的数据永久存储...博文来自:u014163689的博客

  数据库中的主键能够唯一识别一条记录,它可以是一个字段也可以是多个字段的组合。主键的主要作用是标识表中的一条记录,还有和其他表中的数据进行关联。数据库中的主键类型必须符合唯一性约束和非空约束。作为附加属...博文来自:Sunny

  5.1.4.1. Generator可选的子元素是一个Java类的名字,用来为该持久化类的实例生成唯一的标识。如果这个生成器实例需要某些配置值或者初始化参数,用元素来传递。uid_tablenext_...博文来自:Lola&France

  持久化类的简介、持久化类的编写规范以及主键类型和主键生成策略。博文来自:pseudonym_的博客

  数据库中的主键在数据库表中能够唯一识别每一条记录的一个字段或者多个字段的组合,称之为主键(primary key).主键的作用将表中记录的数据和其他表中的数据进行关联.自然主键和复合主键.代理主键:在...博文来自:u010324384的专栏

  【持久化类】持久化类:指的是一个Java类和数据库表建立了映射关系。POJO:“PlainOldJavaObject”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼...博文来自:Joohong的专栏

  1无连接表的N-1关联对于无连接表的N-1关联而言,程序只要在N的一端增加一列外键,让外键值记录该对象所属的实体即可,Hiberante可以使用@JoinColumn来修饰代表关联实体的属性,@Jo...博文来自:浅浅请留步

  Java语言中按照内存地址来区分或识别一个类的不同对象,而关系型数据库按主键值来区分或识别同一个表的不同记录。作为一个优秀的ORM框架,Hibernate使用OID来协调这二者之间的矛盾。OID是关系...博文来自:silymer

  @GeneratedValue基本注解类型在上一篇文章中,我们讲到了JPA使用@GeneratedValue注解来定义生成策略,而关于注解生成策略有4种基本支持类型:1.GenerationType....博文来自:总结沉淀

  主要问题:hibernate中集合映射list中的list-index中的问题:参见一个配置文件: 在User类的配置文件中配置了一个List是指...博文来自:buzuibuxiu的专栏

  通常情况下,我们在定义实体类时会遇到类的属性有集合类型的,比如数组,列表等等,在这种情况下,我们对这个属性的操作是和之前对待整数型,大数据型的都不一样.Hibernate要求持久化一个集合值字段必须声...博文来自:的博客

  Hibernate中的持久化类一、什么是持久化类:持久化是将程序数据在持久状态和瞬时状态间转换的机制。持久化类(persistentclass):是指它的实例可以被hibernate持久化地保存到数据...博文来自:小小Lim的Code世界

  [quote]定义数据映射的时候如果数据类型是是primitive类型(即int,long等基本类型),则应该在数据库中为此列加上[color=red]非空约束[/color],或者直接将其映射为其w...博文来自:aguu125的博客

  什么是持久化类?Hibernate是持久层的ORM映射框架,专注于数据的持久化工作。所谓的持久化,就是将内存中的数据永久的存储到关系型数据库中。那么知道了什么是持久化,什么又是持久化类呢?其实持久化类...博文来自:xinyang_code的博客

  Hibernate有两种方法来写映射文件,当运行Hibernate程序时,会先访问hibernate.cfg.xml配置文件读取配置文件中的信息连接数据库。然后访问映射文件的路径无论是通过注解的形式还...博文来自:果果糖的博客

  实体类与表名一一对应,类中的属性与表中的列名(column)一一对应,中类名.hbm.xml中配置;编写规则(1)实体类中的属性都是private私有的;(2)私有属性的setter和getter方法...博文来自:sysu_hh的博客

  在上篇博客我们讲了hibernate对单表的操作,本篇博客就来讲讲对多表的关联映射操作。首先我们拿来做例子的表为班级表1---n学生表,在这次的测试主键我用的是序列,创建代码如下:--班级表dropt...博文来自:甲如没有乙后的博客

  持久化类的概述 什么是持久化类 持久化:将内存中的一个对象持久化到数据库中的过程。hibernate框架就是用来进行持久化的框架。 持久化类:一个Java对象与数据库的表建立映射关系,那么...博文来自:lby0608的博客

  一JavaBean的四点原则1.必须是公有的类2.提供公有的不带参数的默认的构造方法3.属性私有4.属性setter/getter封装  二创建一个学生持久化类importjava.util.Date...博文来自:实践求真知

  学习Hibernate,必须要理解什么是持久化?结合了一下网上的各位大佬的观点和自己的理解:持久化概念持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不...博文来自:浮生

  一,为什么要用自定义ID策略?JPA自带的ID生成策略足以满足我们一般的需求,自定义的ID生成策略可以为我们实现更加精细化的统计方案,且可以跨平台使用。二,策略声明的位置决定方案的作用域声明在类的上方...博文来自:求知

  上一篇文章中我们学习了Hibernate中java对象的状态以及对象的状态之间如何转换。本文我们将详细讲解Session中的方法。save()Session的save()方法使一个临时对象转变为持久化...博文来自:李阿昀的博客

  一.mysql基本知识主键必须唯一且非空。联合主键中的任何一个键也必须非空,一组联合主键必须唯一。mysql视图没有索引,没有主键,没有外键。二.Hibernate对视图的处理MyEclipsePer...博文来自:zy19982004的专栏

  持久化类:实体类+映射文件持久化类是有编写规范:*提供一个无参数public访问控制符的构造器      :用到反射.*提供一个标识属性,映射数据表主键字段        :*java区分两个对象是否...博文来自:Dove_Knowledge的博客

  一、什么是[对象]持久化?    Java对象的状态可分为3类,如下图,即瞬时状态,持久化和持久化状态。     简单说,在使用new关键字创建出一个对象时,就是瞬时状态;使用JDBC完成数据在持久和...博文来自:ljheee的博客

  weixin_42487604:你好,如果网络连接有问题,是不是就会在第一步的时候出现问题?

本文链接:http://robynlynne.com/duixiangbiaoshifu/728.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部