【发布时间】:2014-09-27 20:30:02
【问题描述】:
我们将 JPA 提供程序从 EclipseLink 更改为 Hibernate 4.1.3。尝试使用生成的 ID 持久化实体时出现问题。这会产生以下错误:
JdbcSQLException: Column "NEXTVAL" not found; SQL statement: select nextval for SCHEMA.ID_SEQ_GENERATOR
实体的顺序如下所示:
@Id
@SequenceGenerator(name = "ID_GENERATOR", initialValue = 100000, allocationSize = 1, sequenceName = "ID_SEQ_GENERATOR")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ID_GENERATOR")
@Column(name = "ID", nullable = false)
public Long getId() {
return this.id;
}
我尝试更改“策略 = GenerationType.IDENTITY”,但没有效果。
有什么建议吗?
【问题讨论】:
-
你在哪个数据库上? JPA 提供者是你唯一改变的东西吗(你为什么改变它)?
-
它是 DB2。该软件相当大,它的其他部分已经在使用 Hibernate。此“子软件”已更改为使用 Hibernate,以与其他部分保持一致。
-
设置了错误的方言?