Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

SaveOrUpdate Hibernate mengabaikan properti kolom bukan-null

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)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengaitkan pengguna ke beberapa skema database?

  2. Status Risiko Analisis Tekanan Memori

  3. Mengurai string yang dibatasi pipa menjadi kolom?

  4. Tidak dapat mengkompilasi PL/SQL dengan BULK COLLECT dan FORALL

  5. membuat skrip SQL