我有表Employee
与主键employee_id
在oracle中。 我有一个遗留应用程序将记录插入到此表中。这个遗留应用程序使用使用本地SQL纯JDBC即作为JPA休眠Oracle - 自动生成主键由max + 1
INSERT INTO employee (employe_id, NAME) VALUES ((SELECT MAX (employee_id) + 1 FROM employee), NAME);
现在我正在开发使用JPA + Hibernate的,它具有插入记录同桌Employee
新的应用程序。我坚持如何自动生成主键。遗留应用程序和新应用程序都将继续使用此表,并且我不允许对遗留应用程序代码进行任何更改。
如果我创建新的数据库序列并使用它,那么就有可能与旧应用程序和新应用程序发生冲突。
有没有办法告诉JPA使用MAX(employee_id)+1
来自动生成主键。
这种做法是错误的,可以在多用户环境中无法正常工作。是否有任何商业原因,为什么ymu必须重新实施它? – ibre5041
使用序列来获得独特的想法。这个max()+ 1方法不会像伊万伤心那样工作。 – Christian13467
谢谢@Ivan。我被要求在组件模型中实现它。在用户认证新应用程序之前,遗留应用程序也将被使用。我最好用DB序列去,也会得到遗留应用程序也使用DB序列。 – Adi