3

hibernate deleteがすべてのレコードで機能するが、id=では機能しないという奇妙な状況が発生してい1ます。最初は、getCurrentSessionアクティブなHibernateセッションを取得するために使用していましたが、機能していなかったため、削除のために新しいセッションを手動で開いたり閉じたりするように変更しました。しかし、今でも機能しません。とはいえ、私はトランザクションを使用しています。

@Override
public void delete(Song song) {
    session = sessionFactory.openSession();
    try {
      Transaction tx = session.beginTransaction();
      session.delete(song);
      tx.commit();
    } catch (HibernateException e) {
      System.out.println("notify!");
    }
    session.close();
}

5つのテストレコードがあります。id = {2,3,4,5}は削除できますが、id=1は削除できません。何か案は?

編集:これは私のSongエンティティのコードです。

4

1 に答える 1

1

私が気づいたことの1つは1、デフォルトでIDをに設定していることです。それが本当にあなたの問題の根源であるかどうかはわかりませんが(しかし、確かにそのようなにおいがします)。

于 2013-03-06T20:45:43.157 に答える