3

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>

ネイティブでも試してみましたが、挿入する値を取得できませんでした。

私はオラクル11gを使用しています。

誰かが私にこれに対する解決策を与えることができますか?

4

3 に答える 3

5

hbm.xmlファイルでschemaName.sequenceNameのようなスキーマ名でシーケンス名を指定した後、挿入操作は正常に機能しています。質問に答えてくれてありがとう。

于 2012-11-12T06:50:54.647 に答える
2

シーケンスは存在しますか?確認するには、次のようにします。

select * from all_sequences where sequence_name = 'REQUEST_INFO_SEQ'
于 2012-11-08T05:24:53.190 に答える
0

POJOオブジェクトがパラメータに入ってくることに何か問題があると思います。最初にセッションを作成して3つのことを行い、POJOオブジェクト(一時的な状態)を作成してから、永続的なメソッドsave、update、delete(永続的な状態)とtrx.commit(分離された状態)を呼び出す必要があります休止状態オブジェクトの状態)。そして、try catchブロックでこの作業を実行してHibernateExceptionをキャッチし、finallyを呼び出してセッションを閉じ、buildSessionFactory();を使用する必要があります。

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

于 2012-11-08T05:46:25.700 に答える