我目前正在从旧数据库构建JPA模型,并且需要一些建议。在这个数据库中,ids是从仅有一个名为next_id
的PK列的表object_id
生成的。每当Java软件使用它创建新对象时,这个next_id
就会增加。如何在只有一列的表中创建JPA中的ID生成器
我的目标是使用相同的表格为JPA模型生成ID。这有可能吗?我试图用
@GeneratedValue(strategy = GenerationType.TABLE, generator = "myGenerator")
@TableGenerator(name = "myGenerator", table = "object_id", valueColumnName = "next_id")
,但它似乎并没有工作,因为object_id
表只有一列(没有序列名称列)。
我有以下限制:
- 我谈到以前的软件将被使用,直至其更新 完成。
- 这是一个商业软件。其开发和使用必须继续。停止开发和维护是不可能的。
- 此更新可能需要至少一年。更新将逐步完成。数据库和用户界面将首先更新。然后计算内核会跟随。
- 计算从用户界面在单独的线程中启动。一旦用户界面被更新,相同的计算内核将被调用,直到内核也被更新。
- 内核更新完成后,就可以使用其他类型的id代。在此之前,JPA模型中的id代必须像软件所做的那样工作。
- 必须以相同的方式创建ID以避免重复键。
- 我完全知道,从JPA表生成ID不是最好的选择。但这是传统代码。我必须处理它。
我忘了提及这个软件的开发始于2000年。那时候,没有像Hibernate或JPA这样的工具。持久性工具是从头开发的,现在仍在使用。目标是摆脱它并使用更新的技术。
任何提示?提前致谢。