如何在hibernate中使用oracle序列



我正在尝试访问下面的sql以生成下一个序列号。我得到QuerySyntaxException引起的双重没有映射

sql=从DUAL 中选择sequence_caseid.EXTVAL

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中有多个这样的序列生成器,我能为所有序列生成器制作一个吗?

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

最新更新