我的数据库中只有一个表,并且我在字段上添加了@Id属性。作为strategy,我使用GenerationType.IDENTITY。当数据库表还没有由SQL脚本中的行填充时,这种方法效果很好。
当表中已经有一些行时,我如何才能让它工作呢?因为当我试图从预先填充的应用程序中插入实体时,它不起作用。
为此,我使用Derby数据库,并使用eclipselink作为实现。
发布于 2011-11-15 04:30:21
我假设您的错误是因为您为您的表创建的标识(通过示例)从"1“中开始,并且您已经用id为"1”的行填充了表。所以肯定存在PK约束冲突。如果这就是我可以建议的场景:
这在Derby DB中应该可以工作
CREATE TABLE MAPS (
MAP_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 4000, INCREMENT BY 1),
MAP_NAME VARCHAR(24) NOT NULL,
REGION VARCHAR(26),
AREA DECIMAL(8,4) NOT NULL,
PHOTO_FORMAT VARCHAR(26) NOT NULL,
PICTURE BLOB(102400),
UNIQUE (MAP_ID, MAP_NAME)
)https://stackoverflow.com/questions/8122194
复制相似问题