Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate JPA专栏“;NEXTVAL";找不到_Java_Hibernate_Jpa - Fatal编程技术网

Java Hibernate JPA专栏“;NEXTVAL";找不到

Java Hibernate JPA专栏“;NEXTVAL";找不到,java,hibernate,jpa,Java,Hibernate,Jpa,我们将JPA提供程序从EclipseLink更改为Hibernate4.1.3。尝试使用生成的id持久化实体时出现问题。这将导致以下错误: JdbcSQLException: Column "NEXTVAL" not found; SQL statement: select nextval for SCHEMA.ID_SEQ_GENERATOR 实体的顺序如下所示: @Id @SequenceGenerator(name = "ID_GENERATOR", initia

我们将JPA提供程序从EclipseLink更改为Hibernate4.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注释的类。我认为使用概要文件应该可以让我克服这个问题,尽管我仍在使用它…)

我发现这个链接帮助我走上了正确的道路:

发现使用了H2,我将SQL更改为:

"NEXT VALUE FOR " + sequenceName
  • 这修正了错误

因此,实际的问题是加载正确的方言(正如“卢卡·巴索·里奇”所暗示的)。方言是DB2的(总是),而在某些情况下它应该是H2的。由于某些原因,当提供程序被更改时,此问题就会出现,因此很难跟踪正确的原因。

您在哪个数据库上?JPA提供程序是您唯一更改的东西吗(为什么更改它)?它是DB2。该软件相当大,其他部分已经在使用Hibernate。为了与其他部分保持一致,此“子软件”已更改为使用Hibernate。设置了错误的方言?