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

时间:2009-10-22 07:19:24

标签: java hibernate postgresql orm hsqldb

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

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

1 个答案:

答案 0 :(得分:2)

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

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

不幸的是,没有干净的方法来从会话中获取方言;见How to get Hibernate dialect during runtime

[旧答案]

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