如何在 Hibernate 中使用 Oracle Sequence?

how to use oracle sequence in hibernate?

提问人:Malar4mMadras 提问时间:3/12/2021 更新时间:3/12/2021 访问量:210

问:

我正在尝试访问下面的 SQL 以生成下一个序列号。我收到 QuerySyntaxException 由未映射的 dual 引起。

sql = 选择sequence_caseid。来自 DUAL 的 NEXTVAL

public Long generate(Session session)
    throws DataRetrievalFailureException, SQLDataException {
    Long result = null;
    Query<?> query = (Query) session.createQuery(sql);
    result = new Long(query.getFirstResult());
    return result;
}

生成器的 Bean 定义

<bean id="generatorVoucherId" class="com.sample.OracleSequenceGenerator">
        <constructor-arg type="java.lang.String"><value>${logger.name}</value></constructor-arg>
        <property name="generatorName"><value>sequence_caseid</value></property>
</bean>

我没有这个双胞胎的hbm.xml。我需要一个吗?如果是这样,如何创建一个?我在 Oracle 中有多个这样的序列生成器,我可以为所有序列生成器制作一个吗?

休眠 序列 双表

评论


答:

1赞 Christian Beikov 3/12/2021 #1

您需要使用该方法来执行 SQL。createNativeQuery