Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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/8/lua/3.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 JPA标准是否提供了允许开发人员编写ID生成器的机制?_Java_Jpa - Fatal编程技术网

Java JPA标准是否提供了允许开发人员编写ID生成器的机制?

Java JPA标准是否提供了允许开发人员编写ID生成器的机制?,java,jpa,Java,Jpa,Hibernate支持自定义ID生成器,如中所述 我想知道,有没有JPA标准的方法来实现这一点?没有,但是您可以编写自己的逻辑来在PrePersist生命周期回调方法中分配主键 这可以进一步扩展为使用EntityListener,如中所述,它允许您注入Spring管理的bean,如果EntityListener由Spring管理,您的PrePersist操作将需要这些bean 如果EntityListener不是由Spring管理的,那么ThreadLocal可能是一个替代方案(rel:)我想如

Hibernate支持自定义ID生成器,如中所述


我想知道,有没有JPA标准的方法来实现这一点?

没有,但是您可以编写自己的逻辑来在
PrePersist
生命周期回调方法中分配主键

这可以进一步扩展为使用
EntityListener
,如中所述,它允许您注入Spring管理的bean,如果
EntityListener
由Spring管理,您的
PrePersist
操作将需要这些bean

如果
EntityListener
不是由Spring管理的,那么ThreadLocal可能是一个替代方案(rel:)

我想如果ID为
null
假设它是一个可空值,那么您可以检查它是否为“新的”