我目前正在从旧数据库构建JPA模型,我需要一些建议。在此数据库中,id是从只有一个名为object_id
的PK列的表next_id
生成的。每次Java软件使用它创建新对象时,此next_id
都会递增。
我的目标是使用相同的表格为JPA模型生成ID。有可能吗?我试着用
@GeneratedValue(strategy = GenerationType.TABLE, generator = "myGenerator")
@TableGenerator(name = "myGenerator", table = "object_id", valueColumnName = "next_id")
但它似乎不起作用,因为object_id
表只有一列(没有序列名称列)。
我有以下限制:
我忘了提到这个软件的开发始于2000年。当时,没有像Hibernate或JPA这样的工具。持久性工具是从头开发的,至今仍在使用。目标是摆脱它并使用更新的技术。
任何提示?提前谢谢。
答案 0 :(得分:1)
您可以使用@GenericGenerator
创建自己的生成器。这确实使它依赖于Hibernate,但你没有太多的选择。然后自定义生成策略,以便仅使用表名。
请参阅Can @TableGenerator save the last used id in the table instead of the next available?
答案 1 :(得分:0)
我们遇到这样的情况:我们必须维护遗留系统插入记录,并构建一个将记录插入同一个表的新系统,并希望为新系统使用序列生成器。我们刚刚使新的序列生成器生成负数,这样两者之间就不会发生冲突。可能是你的选择吗?