ORA-00917:在Hibernate中使用自定义oracle序列时缺少逗号错误

ORA-00917:在Hibernate中使用自定义oracle序列时缺少逗号错误,hibernate,Hibernate,您好,我在尝试在hibernates中使用oracle db序列时遇到此错误。 我使用这个声明: @Entity @Table(name = "T_USER_DETAILS") public class User { @GenericGenerator(name = "generator",strategy = "sequence-identity",parameters = { @Parameter(name = "sequence",value = "USER_ID_SEQ")} ) @

您好,我在尝试在hibernates中使用oracle db序列时遇到此错误。 我使用这个声明:

@Entity
@Table(name = "T_USER_DETAILS")
public class User {


@GenericGenerator(name = "generator",strategy = "sequence-identity",parameters = { @Parameter(name = "sequence",value = "USER_ID_SEQ")} )
@Id 
@GeneratedValue(generator = "generator")
@Column(name = "USER_ID")
private int userid;

..
并使用它来持久化我的实体实例:

            session = sessionFactory.openSession();

        //creating the new transaction from the above created session that is starting a new unit of work
        transaction = session.beginTransaction();

        session.save(user);
        transaction.commit();
        System.out.println("User saved successfully in the database");
        }
        catch(Exception ex)
        {
但我得到了一个错误:

Apr 11, 2013 11:10:20 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: ORA-00917: missing comma

caught : ORA-00917: missing comma

有人能帮忙吗?

在Oracle中,正确的语法是
USER\u ID\u SEQ.nextval
,所以这可能就是语法错误的来源

下面是一个示例线程,其中包含一些您可以参考的代码:

[编辑] 从链接尝试使用

@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="a1")
@SequenceGenerator(name="a1", sequenceName="USER_ID_SEQ")
@Column(name = "USER_ID")
private int userid;

。。。并升级到最新的Hibernate JAR

请在
Hibernate.cfg.xml
中使用
true
设置sql跟踪并发布输出。在那里你(和我们)可以看到Oracle不喜欢哪个逗号。这里是:Hibernate:插入到t_USER_详情2(USER_ID、USER_地址、USER_年龄、USER_电子邮件、USER_FIRSTNAME、USER_LASTNAME、USER_PASSWORD、USER_PHONE)值(my_sequence的下一个值,,,,,,,,,,,,,,,,,,,,,,)4月16日,2013年1月19日上午1:37 org.hibernate.engine.jdbc.spi.SqlExceptionHelper日志异常警告:SQL错误:917,SQLState:42000四月16日,2013年1月19日上午37点org.hibernate.engine.jdbc.spi.SqlExceptionHelper日志异常错误:ORA-00917:捕捉到缺少逗号:org.hibernate.exception.sqlgrammareexception:ORA-00917:缺少逗号只有我的表名和序列名其他所有内容都仍然相同,我仍在输入相同的错误是的,我知道……这里的问题是我没有编写此查询是在调用save(user)方法时由hibernate为我生成的。想法???来自我发布的链接。我建议使用与其描述相同的注释,即
GeneratedValue
SequenceGenerator
,以查看这是否会改变行为。同时升级Hibernate版本,以防这是一个随后已修复的问题。