Java 如何在hibernate中生成序列
我使用以下命令创建了一个名为hibernate_sequence的序列Java 如何在hibernate中生成序列,java,hibernate,Java,Hibernate,我使用以下命令创建了一个名为hibernate_sequence的序列 create sequence hibernate_sequence start with 400; 这是我的hibernate注释dao @Entity @Table(name="T_BIZ_TERM") public class BizTerm implements Serializable { /** * */ private static final long serialV
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
发出的查询应该是从dual中选择hibernate_sequence.nextval代码>
现在该怎么办,我遗漏了什么吗?您是否配置了Oracle方言
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
我对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\u序列好。尝试类似于biz_term_序列的方法。您需要每个表主键有不同的序列。正如Mulmoth所建议的,确保设置了方言!