[英]Hibernate JPA Column “NEXTVAL” not found
我们将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;
}
我尝试更改“ strategy = GenerationType.IDENTITY”,但没有效果。
有什么建议吗?
我发现根据所使用的环境使用了不同的数据库。 使用的方言(当前)始终相同,即使该方言根据执行代码的服务器而有所不同。 (实际上首先加载了正确的方言,但是由于spring决定使用另一个用@Configuration注释的类,因此将其替换。我认为使用配置文件可以使我超越此范围,尽管仍然可以使用它...)
我发现此链接有助于我走上正轨: http : //techmagik.blogspot.fi/2012/07/sequence-support-in-jpa-for-db2-zos.html.html
发现使用了H2之后,我将SQL更改为:
"NEXT VALUE FOR " + sequenceName
因此,实际的问题是加载正确的方言(如“ Luca Basso Ricci”所暗示)。 在某些情况下,方言适用于DB2(始终)用于DB2。 由于某种原因,这个问题在提供者被更改时就显现出来了,因此很难追踪正确的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.