我们可以在没有 JDBC 查询或调用的情况下自动生成主键吗?
Can we generate primary keys automatically without JDBC queries or calls?
我正在尝试在 Hibernate 中自动生成字母数字(例如 TESLA1001)主键。我目前正在使用 Oracle 数据库,所以我有一个 JDBC 调用 my_sequence.NEXTVAL
(1002) 来增加数字并附加到前缀 (TESLA)。
我们正在考虑将 MySQL 作为一个选项,但它们不支持序列。因此,我不得不使用 JDBC 调用存储过程来重写自定义 ID 生成技术。
有什么方法可以让我在不使用 JDBC 和数据库相关查询的情况下生成自定义主键的通用实现?所以,将来,如果我需要使用 MSSQL 测试我的应用程序,我只需要更改我的休眠配置,一切正常!
因为您需要一种协调序列号的方法,所以您将始终必须使用集中式序列生成器。字母数字主键在索引方面的性能比 UUID 生成器差。
如果我是你,我会切换到 UUID identifers,它在所有主要 RDBMS 中都是独一无二的和可移植的。
我正在尝试在 Hibernate 中自动生成字母数字(例如 TESLA1001)主键。我目前正在使用 Oracle 数据库,所以我有一个 JDBC 调用 my_sequence.NEXTVAL
(1002) 来增加数字并附加到前缀 (TESLA)。
我们正在考虑将 MySQL 作为一个选项,但它们不支持序列。因此,我不得不使用 JDBC 调用存储过程来重写自定义 ID 生成技术。
有什么方法可以让我在不使用 JDBC 和数据库相关查询的情况下生成自定义主键的通用实现?所以,将来,如果我需要使用 MSSQL 测试我的应用程序,我只需要更改我的休眠配置,一切正常!
因为您需要一种协调序列号的方法,所以您将始终必须使用集中式序列生成器。字母数字主键在索引方面的性能比 UUID 生成器差。
如果我是你,我会切换到 UUID identifers,它在所有主要 RDBMS 中都是独一无二的和可移植的。