首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JPA:创建自定义ID注释

JPA:创建自定义ID注释
EN

Stack Overflow用户
提问于 2018-08-12 00:09:30
回答 2查看 471关注 0票数 0

我正在为我的实体的id字段创建一个新的自定义id注释:

代码语言:javascript
运行
复制
@Id
@GeneratedValue(generator = RandomAlphanumericIdGenerator.generatorName)
@GenericGenerator(name = RandomAlphanumericIdGenerator.generatorName, strategy = "com.boot.myproject.utils.RandomAlphanumericIdGenerator")
private String id;

它工作得很好。但我想将这三个注解组合到一个新的注解中:

代码语言:javascript
运行
复制
@Id
@GeneratedValue(generator = RandomAlphanumericIdGenerator.generatorName)
@GenericGenerator(name = RandomAlphanumericIdGenerator.generatorName, strategy = "com.boot.myproject.utils.RandomAlphanumericIdGenerator")
@Target({FIELD})
@Retention(RUNTIME)
public @interface RandomAlphanumericId {

}

这似乎不起作用,因为它给出了这个错误:The annotation @Id is disallowed for this location

我想知道是否可以将这些注释归为一组。

EN

回答 2

Stack Overflow用户

发布于 2018-08-12 00:18:27

不,这不可能。JPA没有这种元注释的概念(如错误消息所示)。

注意,这个问题与Spring无关,因为所有这些批注都是JPA批注,而不是Spring批注。

票数 2
EN

Stack Overflow用户

发布于 2018-08-12 00:28:50

Spring Boot不提供此注释的实现。这是Hibernate等JPA实现的职责。据我所知,您不能为Hibernate引入新的Id注释。标准JPA注释不能被替换,因为它们是标准的一部分。你唯一能做的就是创建自定义子类,它将分配所需的id,或者实现一些工厂,它将创建具有已分配Id的实体实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51801494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档