sql >> データベース >  >> RDS >> Mysql

org.hibernate.AssertionFailure:エントリのnull ID(例外が発生した後にセッションをフラッシュしないでください)

    例外:

    セッション例外が前に発生したことを通知します このorg.hibernate.AssertionFailureのポイント スローされます。

    正確には、org.hibernate.AssertionFailure session.flush()のときにスローされます エラーが発生したポイントではなく、発生しています。

    上記は事実であり、したがって、それから考えられる結論は次のとおりです。何かが抑制である可能性があります 元の例外。

    したがって、その他を探してください 考えられるエラーポイント:save() またはsaveOrUpdate() おそらくnullでエンティティを永続化しようとしています フィールド ここで、表の列はNOT NULL

    ヒント: デバッグに役立てるために、session.flush()を追加してみてください Sessionとのすべての対話の後 オブジェクト(例:session.save(obj)session.merge(obj) 、など)、これによりorg.hibernate.AssertionFailureが発生することが期待されます 実際の問題が発生している場所に近い、より早く発生します。 (もちろん、デバッグ後、それらのsession.flush()を削除します 。)


    私の場合、本物 try/catch {}内で例外が発生していました catchのブロック 例外を抑制しました(再スローしたり、警告したりしませんでした)。



    1. sqlalchemyとpyodbcを使用してSQLServer2012に接続する

    2. Cot()がPostgreSQLでどのように機能するか

    3. SQL Server履歴テーブル-SPまたはトリガーを介してデータを入力しますか?

    4. データベースのパフォーマンスを400%向上させる