2 Hibernate映射 属性 主键 集合 组件 联合主键

本文详细介绍了Hibernate映射主键、属性的方式,包括使用注解和XML配置文件。主键生成策略有多种,如native、uuid、hilo等。在映射集合属性时,涉及List、Set、Map以及组件的不同处理。组件可以是持久化类内部定义或单独的类,甚至可以作为复合主键。最后,文章讨论了多列作为联合主键的情况。
摘要由CSDN通过智能技术生成

Hibernate 提供了三种方式将POJO变成PO类

  • 使用持久化注解(以JPA标准注解为主,如果有一些特殊要求,则依然需要使用Hibernate本身提供的注解)
  • 使用JPA2提供的XML配置描述文件,这种方式可以让Hibernate的PO类与JPA实体类兼容
  • 使用Hibernate传统的XML映射文件(hbm文件)。

1 Hibernate映射主键、属性


(1)使用注解的方式

hibernate主键生成

通常情况下如果实体类的标识属性是基本数据类型、基本类型的包装类、String、Date等类型,可以简单的使用@ID修饰该实体的属性即可。

如果希望Hibernate为逻辑主键自动生成主键值,可以使用@GeneratedValue来修饰实体的标识属性。


GeneratedValue支持的属性
属性 是否必须 说明
  strategy 指定Hibernate对该主键列使用怎么样的主键生成策略
  • GenerationType.Auto:hibernate自动选择最社和底层数据库的主键生成策略,这是默认值
  • GenerationType.IDENTITY:对于MySQL、SQL Sever这样的数据库,选择自增长的主键生成策略
  • GenerationType.SEQUENCE:对于Oracle这样的数据库,选择使用基于sequence的主键生成策略。应与@SequenceGenerator一起使用
  • GenerationType.TABLE:使用辅助表来生成主键。应与@TableGenerator一起使用
generator 当使用GenerationType.SEQUENCEGenerationType.TABLE主键生成策略时,该属性引用@SequenceGenerator@TableGenerator所定义的生成器的名称

Hibernate主键生成策略

JPA注解只支持AUTO、Identity、SEQUENCE、TABLE这4中生成策略,如果希望使用Hibernate提供的主键生成策略,就需要使用Hibernate本身的@GenericGenerator注解,该注解用于定义生成器。包括name和strategy两个属性。

stratety属性可指定的值:

  • native: 对于 oracle 采用 Sequence 方式,对于MySQL 和 SQL Server 采用identity(自增主键生成机制),native就是将主键的生成工作交由数据库完成,hibernate不管(很常用)。 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值