JPA使用序列作为自动增量postgres

时间:2012-12-17 13:47:44

标签: postgresql jpa sequence

我有这段代码:

@Entity
@Table(name = "table")
@SequenceGenerator(name="table_id_seq", sequenceName="table_id_seq", allocationSize=1)
public class TableExample extends BaseEntity implements Serializable {

    /**
     * The auto-generated primary key.
     */
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="table_id_seq")
    @Column(name = "table_id")
    private long id;
}

我在我的数据库中有这个SEQUENCE:

CREATE SEQUENCE table_id_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 2000
  CACHE 1;
ALTER TABLE table_id_seq OWNER TO postgres;

当我尝试持久保存新对象时,我收到此错误:

  

org.apache.openjpa.persistence.PersistenceException:错误:当前   事务中止,命令被忽略直到事务结束   block {prepstmnt 642363 SELECT NEXTVAL('table_id_seq')} [code = 0,   状态= 25P02]

我错过了什么吗? 提前致谢

1 个答案:

答案 0 :(得分:2)

错误出现在该代码之前;之前的另一个问题是导致事务中止。检查PostgreSQL服务器错误日志或Hibernate / JPA日志以查看FIRST错误发生的位置,这将是真正的问题。