序列不存在

时间:2012-11-08 05:14:33

标签: java oracle hibernate

在使用spring和hibernate开发Web应用程序时,我得到了以下的执行。

java.sql.SQLException:ORA-02289:序列不存在

当我试图将数据插入表格时,我使用序列来增加request_id的值。

我使用以下编码插入

    @Override
public void postRequest(RequestInfo requestInfo) 
{
Session session = null;
Transaction trans = null;
SessionFactory sessionFactory = null;

sessionFactory=HibernateConfig.getSessionFactory();
session= sessionFactory.openSession();
trans = session.beginTransaction();
session.save(requestInfo);
trans.commit();
session.close();

}
public class HibernateConfig 
{
public static SessionFactory sessionFactory;
public static SessionFactory getSessionFactory() 
{
sessionFactory = new Configuration().configure().buildSessionFactory();
return sessionFactory;
}
}

在hibernate映射中,我提到了这样的

<id name="requestId" type="int" column="request_id" >
<generator class="sequence">
<param name="sequence">REQUEST_INFO_SEQ</param>
</generator>
</id>

我尝试使用本机,但我无法获取要插入的值。

我正在使用oracle 11g。

任何人都可以为我提供解决方案。

3 个答案:

答案 0 :(得分:5)

在hbm.xml文件中为序列名称提供了类似 schemaName.sequenceName 的模式名称后,插入操作正常工作。 谢谢大家回复查询。

答案 1 :(得分:2)

序列是否存在?要检查,请执行:

select * from all_sequences where sequence_name = 'REQUEST_INFO_SEQ'

答案 2 :(得分:0)

我认为POJO对象在参数中出现了问题,你应该首先创建会话做3件事,制作POJO对象(瞬态)然后调用持久化方法保存,更新,删除(持久状态)和trx。 commit(hibernate对象的分离状态)。并且应该在try catch块中执行此操作并捕获HibernateException,然后调用finally将关闭会话,并使用buildSessionFactory();

sessionFactory = new Configuration()。configure()。buildSessionFactory();