管理休眠生成器序列

Posted

技术标签:

【中文标题】管理休眠生成器序列【英文标题】:Manage Hibernate Generator Sequence 【发布时间】:2011-06-16 11:54:59 【问题描述】:

我需要与Hibernate Generator Sequence相关的帮助。

是否可以使用 Hibernate java 类管理由 hibernate hbm 文件映射的 DB (Oracle) 中定义的序列?

我的意思是,从 java 映射类手动更新序列以生成复合序列。

谢谢!

【问题讨论】:

“更新序列”是什么意思?更新不适用于序列,至少在 Oracle 中是这样。 对不起,更新序列,我的意思是通过休眠使用oracle DB中定义的序列(下一个,当前等...)。可以映射一个序列(注释,hbm.xml...),与 POJO 没有任何关系(例如在休眠 cfg 文件中),并在我需要的任何地方使用它?谢谢 【参考方案1】:

要通过 Hibernate 访问序列,您可以使用命名查询。例如,考虑以下链接:define named query in orm.xml with jpa and hibernate 和 http://www.coderanch.com/t/218082/ORM/java/Getting-sequence-hibernate。

【讨论】:

嗨!我已经尝试过这种解决方法,它可以按我的意愿工作。这就是我最终所做的: 1. 在 *.hbm.xml 映射文件中从实体创建 de 查询:<sql-query name="nextSequenceValue"> <![CDATA[ SELECT sec_new_sequence.nextVal FROM dual ]]> </sql-query> 2. 在 java 代码中执行查询:Query query = getSession().getNamedQuery("nextSequenceValue"); 它控制序列作为在 java 中管理的包装器。谢谢!

以上是关于管理休眠生成器序列的主要内容,如果未能解决你的问题,请参考以下文章

序列问题为啥两个实体在使用 hbm2ddl 生成模式时共享相同的序列?

休眠等于方法

休眠自动增量

我如何使用休眠生成迁移?

postgres串行/大串行列的正确休眠ID生成器?

从休眠实体生成数据库