Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以单独使用@GenericGenerator而不使用@GeneratedValue吗?_Java_Hibernate - Fatal编程技术网

Java 我可以单独使用@GenericGenerator而不使用@GeneratedValue吗?

Java 我可以单独使用@GenericGenerator而不使用@GeneratedValue吗?,java,hibernate,Java,Hibernate,在学习java时,我还没有看到一个明确的答案。请澄清 @Id @GeneratedValue(generator = "uuid") @GenericGenerator(name = "uuid", strategy = "uuid2") @JsonExclude private String id; 问题1:我可以单独使用GenericGenerator吗 问题2:如果我在我的对象中传递“id”,@GeneratedValue还会生成新的id并覆盖传递的id吗?如果是这样,如何保持现有id,

在学习java时,我还没有看到一个明确的答案。请澄清

@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@JsonExclude
private String id;
问题1:我可以单独使用GenericGenerator吗

问题2:如果我在我的对象中传递“id”,@GeneratedValue还会生成新的id并覆盖传递的id吗?如果是这样,如何保持现有id,不调用@GeneratedValue

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

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

问题2:如果我在我的对象中传递“id”,@GeneratedValue还会生成新的id并覆盖传递的id吗?如果是这样,如何保持现有id,不调用@GeneratedValue

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

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