Hibernate Apache Derby自定义序列

时间:2010-12-25 05:03:00

标签: java hibernate

我正在尝试研究Hibernate的ID序列生成中的生成器类。

我尝试在非常简单的映射上使用序列生成器

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.test">
    <class name="Customer" table="Customer">
        <id name="id" column="ID" type="long">
            <generator class="sequence">
                <param name="sequence">CUSTOMER_SEQUENCE</param>
            </generator>
        </id>
        <property name="name" type="string" column="CUSTOMER_NAME" />
    </class>
</hibernate-mapping>

我使用的是apache derby,customer表中的ID列只是一个简单的长数据类型。

但是当我尝试执行简单的保存时,我遇到了以下错误。

引起:java.sql.SQLSyntaxErrorException:SEQUENCE'CUSTOMER_SEQUENCE'不存在。 这是否意味着Apache Derby不支持序列生成?感谢

2 个答案:

答案 0 :(得分:2)

似乎Derby不支持序列生成。引自官方Derby FAQ

  

Derby支持生成的“身份”   列;示例在参考文献中   指南。 IDENTITY_VAL_LOCAL函数   返回最近分配的   号。

     

正在开展工作以添加SEQUENCE   支持德比10.6。

答案 1 :(得分:2)

Derby现在支持序列生成,如下所示:

http://db.apache.org/derby/docs/10.8/ref/rrefsqljcreatesequence.html