0

我正在尝试访问以下 sql 以生成下一个序列号。我收到由 dual 导致的 QuerySyntaxException 未映射。

sql = 从 DUAL 中选择 sequence_caseid.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 中有多个这样的序列生成器,我可以为所有这些生成器制作一个吗?

4

1 回答 1

1

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

于 2021-03-12T11:07:17.123 回答