代码之家  ›  专栏  ›  技术社区  ›  egaga

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

  •  1
  • egaga  · 技术社区  · 15 年前

    我需要使用一个序列来获得一个唯一的值。生产代码使用postgres,但我想通过hibernate访问它,以便用hsqldb测试它。

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

    1 回复  |  直到 9 年前
        1
  •  2
  •   Community CDub    8 年前

    看一看 Dialect ( https://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不提供此功能。您最好的选择可能是将它包装在一个接口中,然后根据您的方言使用不同的实现。