接受2个name属性作为该实体类名称,接受2个name属性作为该实体类名称

一、类注解

一、类注解

  1、@entity修饰贰个实体类,接受1个name属性作为该实体类名称,可省略暗中同意为该类名

  1、@entity修饰2个实体类,接受三个name属性作为该实体类名称,可省略暗中同意为该类名

  2、@Table点名持久化类所映射的表名,可承受以下属性

  2、@Table钦定持久化类所映射的表名,可承受以下属性

    catalog:可总结,用于安装将持久化类所映射的表放入钦点的catalog中,若省略,则放入默许的catalog中。

    catalog:可粗略,用于安装将持久化类所映射的表放入钦命的catalog中,若省略,则放入私下认可的catalog中。

    indexs:可粗略,为持久化类设置索引,属性值为1个@index申明数组

    indexs:可回顾,为持久化类设置索引,属性值为一个@index表明数组

      @index :用于为数据表设置索引,接受以下了然

      @index :用于为数据表设置索引,接受以下熟知

        columnList
不得省略,设置对那多少个列建立目录,可钦点多少个数据列,钦赐五个列时用逗号将五个列隔离。如:@Index(columnList
= “id,name,pass”),同时为id,name,pass设置索引。

        columnList
不足省略,设置对那多少个列建立目录,可钦定八个数据列,钦命多个列时用逗号将八个列隔断。如:@Index(columnList
= “id,name,pass”),同时为id,name,pass设置索引。

        name:索引名,可省略

        name:索引名,可省略

        unique:可归纳,设置该索引是不是唯一,只可以取,true
或false,暗中认可true

        unique:可粗略,设置该索引是不是唯一,只好取,true
或false,私下认可true

    name:  该实体类所映射的表名,若省略,暗许与类名一致。

    name:  该实体类所映射的表名,若省略,暗许与类名一致。

    schema:将该持久化所映射的表放入schema中,若省略则放入暗许schema中。

    schema:将该持久化所映射的表放入schema中,若省略则放入暗中认可schema中。

    uniqueConstraints:为持久化类所映射的表钦定唯一约束,值为叁个@UniqueConstraint申明数组。可粗略。

    uniqueConstraints:为持久化类所映射的表钦点唯一约束,值为一个@UniqueConstraint表明数组。可粗略。

      @UniqueConstraint:为数据表制定唯一约束,需点名三个columnNames属性,该属性为3个字符串数组。

      @UniqueConstraint:为数据表制定唯一约束,需点名三个columnNames属性,该属性为二个字符串数组。

  3.@Access用于转移Hibernate的习性访问策略,属性帮衬AccessType.PROPE逍客TY, AccessType.FIELD,暗中认可为AccessType.PROPE帕杰罗TY

  3.@Access用来转移Hibernate的习性访问策略,属性帮忙AccessType.PROPEEnclaveTY, AccessType.FIELD,暗许为AccessType.PROPEQX56TY

      AccessType.PROPE卡宴TY:使用getter/setter方法访问属性。

      AccessType.PROPE兰德酷路泽TY:使用getter/setter方法访问属性。

      AccessType.FIELD:直接通过分子变量访问属性。 

      AccessType.FIELD:直接通过成员变量访问属性。 

  4.@DynamicInsert:钦命用于插入时的SQL语句是不是在运作是动态变化,并且只插入那1个非空字段,暗中同意false,开启将造成hibernate开支更多日子来生成SQL语句。

  4.@DynamicInsert:钦命用于插入时的SQL语句是还是不是在运维是动态变化,并且只插入那多少个非空字段,暗中认可false,开启将促成hibernate开支越来越多时光来生成SQL语句。

  5.@DynamicUpdate:钦命用于创新时的SQL语句是不是在运维是动态变化,并且只更新那么些变过字段,暗中认可false,开启将招致hibernate耗费越来越多时光来生成SQL语句。

  5.@DynamicUpdate:钦定用于立异时的SQL语句是或不是在运转是动态变化,并且只更新那些变过字段,默许false,开启将造成hibernate开销愈多时光来生成SQL语句。

  6.@SelectBeforeUpdate:钦命hibernate在创新时持久化对象时是还是不是先进行一回查询,暗许false。若查询的图景与近期情景一样则不会调用update保存意况。

  6.@SelectBeforeUpdate:钦命hibernate在更新时持久化对象时是或不是先进行3遍询问,暗中同意false。若查询的处境与当下情形同样则不会调用update保存情形。

  7.@Where:该声明的clause个性可内定三个叠加的SQL语句过滤条件,即在采取load()恐怕get()和其余查询方式时,唯有顺应该where条件的才会被加载。该表明只会在询问时生效。

  7.@Where:该注脚的clause属性可钦定八个外加的SQL语句过滤条件,即在应用load()恐怕get()和其余查询办法时,唯有符合该where条件的才会被加载。该评释只会在询问时生效。

  8.@BatchSize:当hibernate抓取集合也许延缓加载时,内定每一回加载size数量。

  8.@BatchSize:当hibernate抓取集合可能延缓加载时,钦赐每趟加载size数量。

  9.@OptimisticLocking:钦点乐观锁策略,该注明的type质量接受

  9.@OptimisticLocking:钦点乐观锁策略,该注明的type质量接受

    OptimisticLockType.VERSION:检查version/timestamp字段

    OptimisticLockType.VERSION:检查version/timestamp字段

    OptimisticLockType.ALL:检查全体字段

    OptimisticLockType.ALL:检查全部字段

    OptimisticLockType.DIOdysseyTY:之检查修改过的字段

    OptimisticLockType.DICRUISERTY:之检查修改过的字段

    OptimisticLockType.NONE:不使用乐观锁

    OptimisticLockType.NONE:不利用乐观锁

    默认为:OptimisticLockType.VERSION

    默认为:OptimisticLockType.VERSION

  10.@Check:通过品质constraints点名三个SQL表明式,用于给相应的表钦定贰个check约束。

  10.@Check:通过质量constraints点名三个SQL表明式,用于给相应的表钦命一个check约束。

 贰 、属性评释

 贰 、属性表明

    1、@column钦定有个别属性所映射的数额列的详细音讯。接受一下常用属性

    1、@column内定某些属性所映射的数据列的详细音讯。接受一下常用属性

属性 是否必须 说明
columnDefinition 值代表一个列定义的SQL字符串,指定传见该数据列的SQL语句
insertable 指定该列是否在默认生成的iinsert语句中,默认true
length 指定该列最大保存的数据长度默认255
name 指定该列的列名默认与@Column修饰的
nullable 指定该列是否允许为null,默认true 
precisoon  当该列是decimal类型时,该属性指定该列的最大有效数字位
scale  否  当该列是decimal类型时,该属性指定该列的最大的小数位数 
table  否  指定该列所属的表名。用多个表保存一个实体时需要该属性。 
unique  否  指定该列是否需要唯一属性,默认false 
updatable  指定该列是否包含在hibernate所生成的update语句列表中,默认true 
     
属性 是否必须 说明
columnDefinition 值代表一个列定义的SQL字符串,指定传见该数据列的SQL语句
insertable 指定该列是否在默认生成的iinsert语句中,默认true
length 指定该列最大保存的数据长度默认255
name 指定该列的列名默认与@Column修饰的
nullable 指定该列是否允许为null,默认true 
precisoon  当该列是decimal类型时,该属性指定该列的最大有效数字位
scale  否  当该列是decimal类型时,该属性指定该列的最大的小数位数 
table  否  指定该列所属的表名。用多个表保存一个实体时需要该属性。 
unique  否  指定该列是否需要唯一属性,默认false 
updatable  指定该列是否包含在hibernate所生成的update语句列表中,默认true 
     

    2、@Formula:该申明的value属性经受三个SQL表明式,被该表明修饰的字段会依据此SQL总结,持久化表中绝非与此属性对应的列。该属性只会在读取是一蹴而就

    2、@Formula:该申明的value属性澳门永利娱乐总站,接受二个SQL表达式,被该申明修饰的字段会依据此SQL总结,持久化表中绝非与此属性对应的列。该属性只会在读取是一蹴而就

      注意:value=“(SQL)”中的括号不可省略

      注意:value=“(SQL)”中的括号不可省略

         SQL中的列名与表名都应与数据库中的表名和列名对应

         SQL中的列名与表名都应与数据库中的表名和列名对应

         在SQL中行使参数可以一贯将方今类的品质传入

         在SQL中使用参数能够平昔将方今类的特性传入

   
 3、@Generated:设置该属性映射的列的值是还是不是又数据库生成,该申明的value可接受Generation提姆e.NEVEMurano(不有数据库生成),GenerationTime.ALWAYS(插入和换代时均生成),GenerationTime.INSE奥迪Q3T(只在插入时更新),该属性供给底层数据库中有相应的触发器。在数据库生成后会读取那个值。

   
 3、@Generated:设置该属性映射的列的值是不是又数据库生成,该评释的value可接受GenerationTime.NEVE奥迪Q5(不有数据库生成),GenerationTime.ALWAYS(插入和翻新时均生成),GenerationTime.INSEEvoqueT(只在插入时更新),该属性须要底层数据库中有照应的触发器。在数据库生成后会读取这么些值。

    4、@Transient:用来修饰不想持久保存的质量。

    4、@Transient:用来修饰不想持久保存的特性。

    5、@Enumerated:修饰枚举类型,该证明的value属性接受EnumType.STLacrosseING(底层保存字符串)和EnumType.O安德拉DINAL(底层保存编号)

    5、@Enumerated:修饰枚举类型,该注脚的value属性接受EnumType.ST福特ExplorerING(底层保存字符串)和EnumType.O奇骏DINAL(底层保存编号)

    6、@Lob,@Basic:修饰大数据类型属性(Clob,Blob),当属性为byte[],Byte[],java.io.Serializable类型时@Lob会在底层映射Blob列,当属性为char[],Character[],java.lang.String时@Lob会在尾部映射为Clob列。

    6、@Lob,@Basic:修饰大数据类型属性(Clob,Blob),当属性为byte[],Byte[],java.io.Serializable类型时@Lob会在底层映射Blob列,当属性为char[],Character[],java.lang.String时@Lob会在底部映射为Clob列。

      @Basic收受下边五个性格:

      @Basic经受下边两性格情:

        fetch:是或不是推迟加载,该属性接受FetchType.EAGE兰德酷路泽(马上加载)、FetchType.LAZY(延迟加载)

        fetch:是还是不是推迟加载,该属性接受FetchType.EAGE福睿斯(立即加载)、FetchType.LAZY(延迟加载)

        optional:钦点映射列是还是不是允许使用null。

        optional:内定映射列是或不是同意采用null。

    7、@Temporal:用于修饰日期类型,该注解的value接受四个值:

    7、@Temporal:用于修饰日期类型,该注明的value接受七个值:

        TemporalType.TIME(只取时间部分),TemporalType.DATE(只取日期部分),TemporalType.TIMESTAMP(时间戳)

        TemporalType.TIME(只取时间有个别),TemporalType.DATE(只取日期部分),TemporalType.TIMESTAMP(时间戳)

  三 、主键生成相关

  叁 、主键生成相关

      对于主键使用@Id大致标注即可,不须要其余性质

      对于主键使用@Id简单标注即可,不须要其余性质

      可使用@GeneratedValue来修饰实体的标记属性,可钦点如下属性:

      可使用@GeneratedValue来修饰实体的符号属性,可钦点如下属性:

        strategy:钦赐hibernate的主键生成策略,能够简简单单,接受下列多个值:

        strategy:钦赐hibernate的主键生成策略,能够差不多,接受下列七个值:

          GenerationType.AUTO自动选取适宜的平底数据库慢慢变化策略,那是暗中同意值。

          GenerationType.AUTO自动选用伏贴的平底数据库慢慢转变策略,这是默许值。

          GenerationType.INDENTITY:对于MYSQL,SQL
Server这样的数据库,选取自增进的变型策略。

          GenerationType.INDENTITY:对于MYSQL,SQL
Server那样的数据库,采取自增加的变动策略。

          GenerationType.SEQUENCE:对于Oracle这样基于Sequence的主键生成策略。应与@SequenceGenerator一起行使。

          GenerationType.SEQUENCE:对于Oracle那样基于Sequence的主键生成策略。应与@SequenceGenerator一起使用。

          GenerationType.TABLE:使用辅助表来扭转主键,应与@TableGenerator一起利用。

          GenerationType.TABLE:使用协理表来变化主键,应与@TableGenerator一起利用。

         
generator:当使用GenerationType.SEQUENCE或GenerationType.TABLE时钦命生成器的称谓。

         
generator:当使用GenerationType.SEQUENCE或GenerationType.TABLE时内定生成器的名号。

      对于@SequenceGenerator可钦定下表属性:

      对于@SequenceGenerator可内定下表属性:

属性 是否必须 说明
name 指定该主键生成器的名称
catalog 用于设置将持久化类所映射的表放入指定的catalog中,若省略,则放入默认的catalog中。
schema 用于设置将持久化类所映射的表放入指定的schema中,若省略,则放入默认的schema中。
initialValue 指定底层Sequence的初始值。对于Oracle该属性指定的整数值将作为定义Sequence时的start with值
sequenceName 指定底层Sequence的名称
allocationSize 指定底层Sequence每次生成主键值的个数。
属性 是否必须 说明
name 指定该主键生成器的名称
catalog 用于设置将持久化类所映射的表放入指定的catalog中,若省略,则放入默认的catalog中。
schema 用于设置将持久化类所映射的表放入指定的schema中,若省略,则放入默认的schema中。
initialValue 指定底层Sequence的初始值。对于Oracle该属性指定的整数值将作为定义Sequence时的start with值
sequenceName 指定底层Sequence的名称
allocationSize 指定底层Sequence每次生成主键值的个数。

 

 

 

 

 

 

 

 

 

 

 

 

对于@TableGenerator可钦命下表属性,该注明会在底部数据库中额外生成二个帮助表。

对于@TableGenerator可钦定下表属性,该注明会在底部数据库中额外生成多少个协理表。

uniqueConstraints 该属性为一个@UniqueConstraint数组,用于为辅助表创建唯一约束
name 指定该主键生成器的名称
allocationSize 指定底层辅助表每次生成主键值的个数
catalog 用于设置将持久化类所映射的表放入指定的catalog中,若省略,则放入默认的catalog中
schema 用于设置将持久化类所映射的表放入指定的schema中,若省略,则放入默认的schema中
table 指定辅助表的名称
initialValue 将指定值作为底层辅助表的起始值。默认0.
pkColumnName 指定存放主键名的列名
pkcolumnValue 指定主键名
valueColumnName 指定存放主键值的列名
indexs 指定一个@Index数组,为辅助表创建索引
uniqueConstraints 该属性为一个@UniqueConstraint数组,用于为辅助表创建唯一约束
name 指定该主键生成器的名称
allocationSize 指定底层辅助表每次生成主键值的个数
catalog 用于设置将持久化类所映射的表放入指定的catalog中,若省略,则放入默认的catalog中
schema 用于设置将持久化类所映射的表放入指定的schema中,若省略,则放入默认的schema中
table 指定辅助表的名称
initialValue 将指定值作为底层辅助表的起始值。默认0.
pkColumnName 指定存放主键名的列名
pkcolumnValue 指定主键名
valueColumnName 指定存放主键值的列名
indexs 指定一个@Index数组,为辅助表创建索引

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    使用hibernate的@GenericGenerator诠释定义主键生成器,该表明接受五个参数:

    使用hibernate的@GenericGenerator评释定义主键生成器,该注脚接受多少个参数:

      name:必须属性。设置该生成器的称号,该名称能够被@GeneratedValue的generator属性引用。

      name:必须属性。设置该生成器的名目,该名称能够被@GeneratedValue的generator属性引用。

      strategy:必须属性。设置该生成器的主键生成策略。接受以下值:

      strategy:必须属性。设置该生成器的主键生成策略。接受以下值:

        increment:为long,int,short生成唯一标识,只可以在尚未别的进程往同3个表中插入时才能运用。集群中不要使用!

        increment:为long,int,short生成唯一标识,只可以在并未其余进度往同3个表中插入时才能采纳。集群中不用使用!

        identity:在DB二 、MySql、SQL
Server、Sybase和HypersonicSQL等有提供identity(自拉长)的数据库中适用。

        identity:在DB贰 、MySql、SQL
Server、Sybase和HypersonicSQL等有提供identity(自增进)的数据库中适用。

        Sequence:在DB贰 、PostgreSQL、Oracle、SAP
DB、McKoi等有提供Sequence匡助的数据库中适用。

        Sequence:在DB贰 、PostgreSQL、Oracle、SAP
DB、McKoi等有提供Sequence辅助的数据库中适用。

        hilo:使用一个高/低位算法来生成long、int、short类型的标识符,该标识符在多个数据库中是绝无仅有的。

        hilo:使用一个高/低位算法来生成long、int、short类型的标识符,该标识符在四个数据库中是绝无仅有的。

        seqhilo:使用三个高/低位算法来生成long、int、short类型的标识符,须求给定三个Sequence名,该属性适用与提供Sequence的数据库。

        seqhilo:使用一个高/低位算法来生成long、int、short类型的标识符,要求给定三个Sequence名,该属性适用与提供Sequence的数据库。

        uuid:用三个1二十五个人的UUID算法来生成字符串类型的标识符,在全网中绝无仅有。该算法遵照IP地址、JVM运转时间、二个计数器值(JVM中唯一)来生成三个叁十五人的字符串

        uuid:用一个127位的UUID算法来生成字符串类型的标识符,在全网中唯一。该算法依据IP地址、JVM运营时间、二个计数器值(JVM中唯一)来生成一个三十六人的字符串

        guid:在SQL Server和Mysql中运用数据库生成的GUID 字符串

        guid:在SQL Server和Mysql中选用数据库生成的GUID 字符串

        native:遵照底层数据库的能力选拔identity、sequenec也许hilo中的一个

        native:依据底层数据库的能力采纳identity、sequenec大概hilo中的1个

        assigned:让应用程序在sava在此之前为对象分配二个标识符。相当于不应用主键生成策略。

        assigned:让应用程序在sava此前为对象分配二个标识符。也正是不选用主键生成策略。

        select:通过触发器选择某些唯一主键的行,并重回其主键值作为标识属性值

        select:通过触发器选择某些唯一主键的行,并赶回其主键值作为标识属性值

        foreign:直接动用另二个涉及的对象的标识符属性值(即本持久化对象不扭转主键)。那种策略只在依据主键的1-1关系映射中有效。

        foreign:直接使用另二个事关的对象的标识符属性值(即本持久化对象不成形主键)。那种方针只在依据主键的1-1关联映射中有效。

相关文章