gpt4 book ai didi

java - 在 Hibernate 中自动生成带有注释的字符串主键

转载 作者:行者123 更新时间:2023-11-30 02:03:35 24 4
gpt4 key购买 nike

我对 Spring Boot 还很陌生,在模型中有一个 Id(主键),它是 String,我需要在保存新实体时自动生成它。

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private String id;
private String name;
private String description;

但是,我在保存新实体时收到此错误。

"message": "Unknown integral data type for ids : java.lang.String; nested exception is org.hibernate.id.IdentifierGenerationException: 

如何避免此错误并在保存新实体时自动生成id

最佳答案

当您尝试将自动生成的值与String字段一起使用时,这对您不起作用。

为了使其工作,您需要更改您的@GenerateValue注释以使用生成器而不是策略,并添加一个@GenericGenerator 注解命名生成器并指向策略。

例如,假设您想要生成自动生成的 UUID 作为表的 PK,您的代码将如下所示:

@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
@Column(updatable = false, nullable = false)
private String id;

除了上述内容之外,您始终可以实现 IdentifierGenerator 来创建您自己的生成器。您可以在这里查看更多信息:

How to implement a custom String sequence identifier generator with Hibernate

关于java - 在 Hibernate 中自动生成带有注释的字符串主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51998450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com