Ini benar-benar perilaku yang benar.
not-null
atribut memiliki dua arti:
- dukung alat pengekspor skema
- periksa Entitas saat runtime (yaitu jangan periksa pengaturan kolom database)
Lihat:5.1. Deklarasi pemetaan , ekstrak:
Dan 5.1.11. Properti , ekstrak:
Jadi, jika klien Anda menjalankan beberapa kode, yang mencoba:
getHibernateTemplate().saveOrUpdate(myEntity);
sedangkan myEntity
tidak ada beberapa properti yang ditetapkan sebagai not-null="true"
itu benar dalam melempar pengecualian runtime. Saat berada di lingkungan pengujian, kemungkinan besar Anda selalu menyetel properti ke some bukan nilai nol.
Dan bahkan ada keuntungannya. DB dan Aplikasi digabungkan secara longgar. Jadi jika diperlukan, Anda dapat membuat lebih banyak batasan di sisi Aplikasi, tanpa menyentuh DB (mis. Anda tidak diizinkan)