我们可以自动生成主键而无需JDBC查询或调用吗?

Tej*_*nan 5 java mysql oracle hibernate primary-key

我试图在Hibernate中自动生成alpha-numberic(例如TESLA1001)主键.我目前正在使用Oracle数据库,所以我有一个JDBC调用my_sequence.NEXTVAL(1002)来增加数字并附加到前缀(TESLA).

我们正在考虑将MySQL作为一种选择,但它们不支持序列.所以我不得不使用JDBC调用重新编写自定义ID生成技术到存储过程.

有没有办法在不使用JDBC和数据库相关查询的情况下生成自定义主键的通用实现?因此,将来,如果我需要使用MSSQL测试我的应用程序,我只需要更改我的hiberate配置,并且工作正常!

Vla*_*cea 1

因为您需要一种协调序列号的方法,所以您始终必须使用集中式序列生成器。字母数字主键在索引方面的性能比 UUID 生成器差。

如果我是您,我会改用UUID 标识符,它在所有主要 RDBMS 中都是唯一且可移植的。