gpt4 book ai didi

java - 我可以单独使用 @GenericGenerator 而不使用 @GenerateValue 吗?

转载 作者:行者123 更新时间:2023-12-02 10:02:57 29 4
gpt4 key购买 nike

学习java,我还没有看到明确的答案。任何澄清表示赞赏。

@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@JsonExclude
private String id;

问题1:我可以单独使用GenericGenerator吗?

问题2:如果我在对象中传入“id”,@GenerateValue 是否仍会生成新的 id 并覆盖传入的 id ?如果是这样,如何保留现有的id,不调用@GenerateValue?

最佳答案

Q1: can i use GenericGenerator alone ?

不是真的。它采用由 @GenerateValue 定义的生成器的名称。

Q2: if i'm passing in "id" in my object, will @GeneratedValue still generated the new id and overwrite the passed in one ? If so, how to keep the existing id, don't call @GeneratedValue ?

这取决于底层实现。通常,如果对象已经设置了 ID,则不会再次生成。但是,您不应该自己弄乱 ID,而应该让 EntityManager 管理这些 ID。

当您保存一个新实体时,它不会设置id,因此生成器在持久化该实体时将创建一个新实体。当您从数据存储中查询实体时,它将由持久性框架(在本例中为 hibernate)填充。它还将跟踪该实例,以获取您可能想要保存回的实体的任何 future 更新。

关于java - 我可以单独使用 @GenericGenerator 而不使用 @GenerateValue 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55498400/

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