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
Java 更改JPA实体Id生成策略_Java_Jpa_Eclipselink - Fatal编程技术网

Java 更改JPA实体Id生成策略

Java 更改JPA实体Id生成策略,java,jpa,eclipselink,Java,Jpa,Eclipselink,有一个带有EclipseLink的JSF/JPA应用程序,它有大约40个不同的实体类。用于为每个实体类生成id的方法是自动的 @Id @GeneratedValue(strategy = GenerationType.AUTO) Long id; 经过大约一周的生产运行,Id号已超过10000。我担心在未来几年内可能会用完大量的数据 因此,我搜索了网络,并更改了Id生成策略,如下所示 @Id @GeneratedValue(strategy = GenerationType.AUTO, gen

有一个带有EclipseLink的JSF/JPA应用程序,它有大约40个不同的实体类。用于为每个实体类生成id的方法是自动的

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
经过大约一周的生产运行,Id号已超过10000。我担心在未来几年内可能会用完大量的数据

因此,我搜索了网络,并更改了Id生成策略,如下所示

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "item_entity_seq_gen")
@SequenceGenerator(name = "item_entity_seq_gen", sequenceName = "ITEM_ENTITY_SEQ")
Long id;
但是,当创建一个新实体时,会出现如下错误

如何更改自动生成策略,以便在开发阶段后不会出现长ID耗尽的威胁


提前感谢

正如isnot2bad在评论中所说的,如果自动生成ID,那么实际上是不可能用完的,我已经放弃了生成单独ID的新方法

最大可能的long值是2^63-1,因此,如果您的数据库每秒生成1000000(100万!)个ID,那么您将在超过290000年的时间内获得溢出。您会得到哪个错误?在阅读isnot2bad的评论后,我无法停止大笑。很抱歉,我无法粘贴错误。我改回以前的方法,因为实际上不可能像isnot2bad所说的那样用完生成的ID。谢谢如果你的问题得到了回答,请将其标记为已回答:)