You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅用JPA实现UUID映射:替代Hibernate @Type注解方案咨询

可以用纯JPA注解替换Hibernate的@Type来处理UUID吗?

当然可以,从JPA 2.2版本开始,UUID已经成为JPA的标准支持类型,完全不需要依赖Hibernate专属的@Type注解就能实现持久化,让你的代码独立于具体ORM框架。

修改后的实体代码

直接移除@Type(type = "uuid-char")即可,其他注解保留:

@Entity
@Table(name = "query_indicator")
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public final class QueryIndicatorEntity {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;

  @NotNull
  @Column(name = "uuid", length = 36, nullable = false, unique = true)
  private UUID uuid;
  // 其他字段...
}

补充说明

  • 确认你的项目依赖的JPA版本在2.2及以上:比如Spring Boot 2.1及以上版本默认引入的JPA依赖就满足这个要求
  • ORM提供者会自动适配UUID的数据库存储:以Hibernate为例,它会根据数据库类型自动选择合适的存储方式,而你配置的@Column(length = 36)已经明确了字符串存储的长度,足以对应UUID的36字符格式
  • 如果你的项目还在使用JPA 2.1或更低版本,那确实需要依赖@Type注解,但目前主流项目都已经升级到支持JPA 2.2+的环境了

内容的提问来源于stack exchange,提问作者Anthony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 09:22:41