Java &引用;错误:ORA-00917:缺少逗号“;对oracle中的现有序列使用Hibernate时

Java &引用;错误:ORA-00917:缺少逗号“;对oracle中的现有序列使用Hibernate时,java,sql,oracle,hibernate,sequence,Java,Sql,Oracle,Hibernate,Sequence,我使用了本文中的注释建议: 但我仍然在标题中发现了错误。 从hibernate生成的sql似乎包括 next value for ANNOUNCEMENT_ID_SEQ 而不是传统的 ANNOUNCEMENT_ID_SEQ.nextval 我在本文中也使用了这个建议: 它在主键的位置放了一个null。。。这对于那篇文章中给出的注释是有意义的 我错过什么了吗? 任何协助都将不胜感激。 提前谢谢 来自Hibernate文档关于 仅针对JDK的Oracle 10g驱动程序支持此策略 1.4 如

我使用了本文中的注释建议:

但我仍然在标题中发现了错误。 从hibernate生成的sql似乎包括

next value for ANNOUNCEMENT_ID_SEQ
而不是传统的

ANNOUNCEMENT_ID_SEQ.nextval
我在本文中也使用了这个建议:

它在主键的位置放了一个null。。。这对于那篇文章中给出的注释是有意义的

我错过什么了吗? 任何协助都将不胜感激。 提前谢谢

来自Hibernate文档关于

仅针对JDK的Oracle 10g驱动程序支持此策略 1.4

如果您不使用10g set
strategy=“sequence”
“native”
可以解决问题。

其他用途

@GeneratedValue(strategy=GenerationType.AUTO, generator="announcementGenerator")
@SequenceGenerator(name="announcementGenerator", sequenceName="ANNOUNCEMENT_ID_SEQ")

希望能有所帮助。

您是否尝试过
@SequenceGenerator
?谢谢您的评论。见下文。我目前正在使用@SequenceGenerator,但它没有按预期工作。感谢您的快速响应。使用你的“else”是我在第二篇文章中提到的。我确实做到了这一点,但只使用字符串类型作为id字段。它不应该是字符串类型,而应该是Long类型。但无论我使用哪种类型的id,它都会给我“错误:无效的列类型:get[TypeUsed]没有为类oracle.jdbc.driver.T4CRowidAccessor实现”我已经尝试了long、long、Integer、BigInteger和BigDecimal。他们都做同样的事情。当使用字符串时,它使用seq插入列,但我返回的id类似于'AAAQIkAAGAAAEI2AAB'。思想?也带有GenerationType.SEQUENCE?方言设置是否正确?或者是司机的问题。对不起,我再也帮不上忙了:|检查一下方言。我们使用的是11g(11.2.0.3),并且正在为该版本的oracle和我们开发的java版本使用正确的驱动程序。感谢您在这一点上的投入。我很感激,这是方言。我当时使用的是org.hibernate.dialogue.hsqldialate,然后切换到org.hibernate.dialogue.oracle10galent。谢谢!
@GeneratedValue(strategy=GenerationType.AUTO, generator="announcementGenerator")
@SequenceGenerator(name="announcementGenerator", sequenceName="ANNOUNCEMENT_ID_SEQ")