1

我需要使用序列来获得唯一值。生产代码使用 postgres,但我想通过 Hibernate 访问它,以便我可以使用 HSQLDB 对其进行测试。

如何在 Hibernate 中创建和读取序列?

4

1 回答 1

2

看看Dialecthttps://github.com/hibernate/hibernate-orm/blob/5.0/hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java)。

它包含用于确定您的数据库是否支持序列 ( supportsSequences()) 的代码以及创建和删除它们的方法 ('getCreateSequenceString(String sequenceName)')。

不幸的是,没有干净的方法可以从会话中获取方言。请参阅如何在运行时获取 Hibernate 方言

[旧答案]

您可以尝试重用代码,HibernateDialect但主 API 不提供此功能。您最好的选择可能是将其包装在一个界面中,然后根据您的方言使用不同的实现。

于 2009-10-22T07:27:29.400 回答