繁体   English   中英

找不到休眠的JPA列“ NEXTVAL”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM