Hibernate 使用ApacheDerby和hbm2ddl的约束问题

Hibernate 使用ApacheDerby和hbm2ddl的约束问题,hibernate,jpa,hbm2ddl,derby,Hibernate,Jpa,Hbm2ddl,Derby,我们在Hibernate 3.3.x中使用ApacheDerby10.5.3.01和hbm2ddl 在嵌入式derby数据库上预加载SQL时,我得到了以下约束错误。如果我从创建表sql中删除主键(id),它就能够创建表。我不知道这里有什么问题 create table user_flow (id integer not null generated always as identity unique, creation_date timestamp not null, name varchar(

我们在Hibernate 3.3.x中使用ApacheDerby10.5.3.01和hbm2ddl

在嵌入式derby数据库上预加载SQL时,我得到了以下约束错误。如果我从创建表sql中删除主键(id),它就能够创建表。我不知道这里有什么问题

create table user_flow (id integer not null generated always as identity unique, creation_date timestamp not null, name varchar(255), primary key (id));

[INFO] Constraints 'SQL100219175052781' and 'SQL100219175052780' have the same set of columns, which is not allowed.

我认为,这是一个问题,尚未得到解决。基本问题是列同时声明为“unique”和“primary key”,这导致Derby尝试创建两个约束索引。由于“主键”已经意味着“唯一”,因此您可以省略“唯一”,我认为这比省略“主键”要好。

我认为这是一个问题,尚未解决。基本问题是列同时声明为“unique”和“primary key”,这导致Derby尝试创建两个约束索引。由于“主键”已经意味着“唯一”,您可以省略“唯一”,这比省略“主键”要好。

看起来像是已知的derby问题,但SQL是由Hibernate 3.3.x hbm2ddl工具生成的。不确定这个工具是否有一个解决方法来避免为主键字段创建唯一的。上面的错误使得derby无法与Hibernate 3.3.x一起使用,这是否意味着没有人将它用作开发平台?感谢您提供解决此问题的建议或解决方法。您是否尝试过向Hibernate社区寻求建议?我知道有一种叫做“冬眠的德比方言”;也许您可以调整它,使Hibernate在本例中不生成此SQL。上述问题使得最新版本的ApacheDerby无法与Hibernate3.3.x一起使用。我也会在hibernate论坛上问这个问题。Joshua,请告诉我们你从hibernate社区了解到了什么。与此同时,DERBY-789已经取得了一些进展,因此,如果您能够将实验性的DERBY修补程序整合到您的开发环境中,那么获得一些关于修补程序是否朝着正确方向发展的反馈会很有趣。看起来像是已知的DERBY问题,但是SQL是由Hibernate3.3.xHBM2DDL工具生成的。不确定这个工具是否有一个解决方法来避免为主键字段创建唯一的。上面的错误使得derby无法与Hibernate 3.3.x一起使用,这是否意味着没有人将它用作开发平台?感谢您提供解决此问题的建议或解决方法。您是否尝试过向Hibernate社区寻求建议?我知道有一种叫做“冬眠的德比方言”;也许您可以调整它,使Hibernate在本例中不生成此SQL。上述问题使得最新版本的ApacheDerby无法与Hibernate3.3.x一起使用。我也会在hibernate论坛上问这个问题。Joshua,请告诉我们你从hibernate社区了解到了什么。与此同时,DERBY-789已经取得了一些进展,因此,如果您能够将实验性的DERBY补丁合并到您的开发环境中,那么获得一些关于补丁是否朝着正确方向发展的反馈将是非常有趣的。