Java 更改JPA实体Id生成策略
有一个带有EclipseLink的JSF/JPA应用程序,它有大约40个不同的实体类。用于为每个实体类生成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
@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。谢谢如果你的问题得到了回答,请将其标记为已回答:)