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

时间:2015-08-02 09:28:40

标签: java mysql oracle hibernate primary-key

我正在尝试在Hibernate中自动生成alpha-numberic(例如TESLA1001)主键。我目前正在使用Oracle数据库,因此我对{{1}}(1002)进行了JDBC调用以增加数字并附加到前缀(TESLA)。

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

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

1 个答案:

答案 0 :(得分:1)

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

如果我是你,我会切换到UUID identifers,它们在所有主要的RDBMS中都是唯一且可移植的。