java - 如何在 hibernate 中生成序列

标签 java hibernate

我使用以下命令创建了一个名为 hibernate_sequnce 的序列

create sequence hibernate_sequence start with 400;

这是我的 hibernate 带注释的dao

@Entity
@Table(name="T_BIZ_TERM")
public class BizTerm implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = -3056055722354292136L;

    private Long bizTermId;
@Id
    @GeneratedValue()
    @Column(name="BIZ_TERM_ID")
    public Long getBizTermId() {
        return bizTermId;
    }
    public void setBizTermId(Long bizTermId) {
        this.bizTermId = bizTermId;
    }
}

为了向表中插入新记录,hibernate 正在生成错误的查询以获取下一个序列值。 Hibernate 总是发出这个查询..无论我做什么..

select nextval(hibernate_sequnce)

我正在使用 oracle 10G,它总是报告以下错误..

ORA-00923: FROM keyword not found where expected

发出的查询应该是select hibernate_sequnce.nextval from dual; 现在该怎么办,我错过了什么吗?

最佳答案

我为 Oracle 序列做了类似的事情。

@Id
@Column(name = "BIZ_TERM_ID")
@SequenceGenerator(name = "myKeySeq", sequenceName = "hibernate_sequence ", allocationSize = 20)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "myKeySeq")
private Long bizTermId;;

不过,我会为序列命名,而不是 hibernate_sequence。试试像 biz_term_sequence 这样的东西。您将希望每个表的主键有不同的序列。

关于java - 如何在 hibernate 中生成序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346858/

相关文章:

java.lang.UnsatisfiedLinkError : org. opencv.core.Core

hibernate - 管理 hibernate session

java - hibernate 和继承(TABLE_PER_CLASS)

java - session.load()方法如何在不访问数据库的情况下提取数据?

postgresql - 使用 Hibernate 和 Spring Data JPA 选择特定列时出现异常

Java 转换导致运行时错误而不是编译错误

java - 如何使用从包含十条记录的文本文件读取用户名和密码来登录java?

java.text.SimpleDateFormat 闰年

java - 日历滚动影响其他日历

java - 使用Spring和Hibernate跨多个数据库进行分布式事务的 'best'方法是什么