受这里提供的建议所启发 - JPA实体类在使用2个@GeneratedValue字段时报错,我的问题相反 - 如何生成不带破折号的UUID
我正在使用H2数据库,并且在我的模型中有以下内容:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "useruuid")
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid4")
private UUID userUUID;
在我的控制器中,它是这样的:
@PostConstruct
private void postConstruct() {
AppUser appUser = new AppUser(1l, UUID.randomUUID());
appUserJPARepository.save(appUser);
}
现在,当我的 Spring Boot 应用程序启动时,我的 H2 DB 控制台会显示以下内容:
ID USERUUID
1 25b9b7f391d94825b349866fe9a9077c
问题:如何在数据库中获得连字符?这样我的UUID在数据库中将为-25b9b7f3-91d9-4825-b349-866fe9a9077c。
我尝试了将@GenericGenerator(name = "uuid4", strategy = "uuid4")
的uuid(1)更改为uuid5,但是得到了相同的结果。这是怎么回事?我做错了什么或者应该做什么才能在数据库中获得连字符?任何有关此问题的帮助、相关信息/链接将不胜感激。