首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres + EJB3预分配大小错误

Postgres + EJB3预分配大小错误
EN

Stack Overflow用户
提问于 2012-02-28 15:28:26
回答 2查看 1.3K关注 0票数 2

我对postgres和jpa中的顺序有问题。

代码语言:javascript
复制
Caused by: javax.persistence.EntityExistsException:
Exception Description: The sequence named [shp_users_seq] is setup incorrectly.  Its increment does not match its pre-allocation size.
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:443)
        at com.sun.enterprise.container.common.impl.EntityManagerWrapper.persist(EntityManagerWrapper.java:269)
        at base.data.provider.beans.session.DAOImpl.createUser(DAOImpl.java:18)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-29 13:18:15

规则是:序列的增量大小是jpa中allocationSize的值:我有这样的设置:这是错误的:

代码语言:javascript
复制
@SequenceGenerator(name = "User_Seq_Gen", 
                   sequenceName = "shp_users_seq", allocationSize=999)

根据以下内容进行更正:

代码语言:javascript
复制
@SequenceGenerator(name = "User_Seq_Gen", 
                   sequenceName = "shp_users_seq" ,allocationSize=1)

因为序列的增量大小是1:

代码语言:javascript
复制
 shopper=> \d shp_users_seq;
        Sequence "public.shp_users_seq"
    Column     |  Type   |        Value
---------------+---------+---------------------
 sequence_name | name    | shp_users_seq
 last_value    | bigint  | 1
 start_value   | bigint  | 1
 increment_by  | bigint  | 1
 max_value     | bigint  | 9223372036854775807
 min_value     | bigint  | 1
 cache_value   | bigint  | 1
 log_cnt       | bigint  | 0
 is_cycled     | boolean | f
 is_called     | boolean | t
票数 3
EN

Stack Overflow用户

发布于 2012-02-28 20:58:25

尝试将序列的起始值设置为至少与用于@SequenceGenerator注释的属性allocationSize的大小相同的值。

代码语言:javascript
复制
 CREATE SEQUENCE seq_name
 ...
 START WITH 100;

有关这方面的详细信息,请参阅http://dev.eclipse.org/mhonarc/lists/eclipselink-users/msg03461.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9477999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档