我有一个这样注释的类:
@Entity
@Table(name="MYENTITY")
@SequenceGenerator(name="CODE_GEN", sequenceName="SEQ_NAME")
public class MyEntity {
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="CODE_GEN")
@Column(name="CODE", nullable=false)
private int code;
我正在使用休眠 3.6.10 和 Oracle10gDialect。数据库是Oracle 10g。创建了一个序列:
CREATE SEQUENCE SCHEMA_NAME.SEQ_NAME
START WITH 0
MAXVALUE 999999999999999999999999999
MINVALUE 0
NOCYCLE
NOCACHE
NOORDER;
COMMIT;
当我尝试持久化 MyEntity 类时,我得到:
Hibernate: select hibernate_sequence.nextval from dual
19-jul-2012 13:31:24 org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 2289, SQLState: 42000
19-jul-2012 13:31:24 org.hibernate.util.JDBCExceptionReporter logExceptions
GRAVE: ORA-02289: sequence not exist
如果我用@SequenceGenerator (sequenceName="SEQ_NAME") 声明序列名称,为什么休眠总是试图访问 hibernate_sequence?我的注释有问题吗?
我尝试了很多组合,Hibernate 总是忽略序列名称并寻找“hibernate_sequence”。顺便说一句,我使用的是 GenerationType.AUTO,因为此应用程序还必须与 SQLServer 运行。
谢谢...