0

我使用了这篇文章的注释建议:

如何使用现有的Oracle序列在hibernate中生成id?

@GenericGenerator(name = "announcementGenerator", strategy = "sequence-identity", 
                    parameters = @org.hibernate.annotations.Parameter(name = "sequence", value = "ANNOUNCEMENT_ID_SEQ"))
@Id
@GeneratedValue(generator = "announcementGenerator")
@Column(name="ANNOUNCEMENT_ID")

但我仍然得到标题中的错误。从hibernate生成的sql似乎包括

next value for ANNOUNCEMENT_ID_SEQ

而不是传统的

ANNOUNCEMENT_ID_SEQ.nextval

我也使用了这篇文章中的建议: ORA-00917: missing comma error while using custom oracle sequence in hibernate

并且它在主键的位置放置了一个空值......这对于该文章中给出的注释是有意义的。

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

4

1 回答 1

0

从休眠文档关于sequence-identity

此策略仅在面向 JDK 1.4 的 Oracle 10g 驱动程序上受支持。

如果你不使用 10g 套装strategy = "sequence"或者"native"可以解决问题。

其他用途

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

希望能有所帮助。

于 2013-08-25T18:06:54.993 回答