Pengecualian:
Memberi tahu kami bahwa pengecualian sesi telah terjadi sebelum titik di mana org.hibernate.AssertionFailure
ini dilempar.
Tepatnya, org.hibernate.AssertionFailure
dilempar ketika session.flush()
sedang terjadi, bukan titik di mana kesalahan itu terjadi.
Di atas adalah fakta, jadi kesimpulan yang mungkin darinya adalah:sesuatu bisa menekan pengecualian asli.
Jadi cari lainnya kemungkinan titik kesalahan:save()
atau saveOrUpdate()
mungkin mencoba mempertahankan entitas dengan null
bidang di mana, dalam tabel, kolomnya adalah NOT NULL
?
KIAT: Untuk membantu dalam proses debug, coba tambahkan session.flush()
setelah setiap interaksi dengan Session
objek (mis. session.save(obj)
, session.merge(obj)
, dll.), ini diharapkan akan menyebabkan org.hibernate.AssertionFailure
terjadi lebih awal, lebih dekat ke tempat masalah sebenarnya terjadi. (Tentu saja, setelah debugging, hapus session.flush()
.)
Dalam kasus saya, yang nyata pengecualian terjadi di dalam try/catch {}
blokir tempat catch
menekan pengecualian (tidak melemparkan kembali atau memperingatkan saya tentang hal itu).