Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hibernate's saveOrUpdate bỏ qua thuộc tính cột not-null

Đó là hành vi hoàn toàn đúng đắn.

not-null thuộc tính có hai nghĩa:

  • hỗ trợ các công cụ xuất lược đồ
  • kiểm tra Thực thể trong thời gian chạy (tức là không kiểm tra cài đặt cột cơ sở dữ liệu)

Xem: 5.1. Khai báo ánh xạ , trích:

5.1.11. Thuộc tính , trích:

Vì vậy, nếu khách hàng của bạn chạy một số mã, hãy thử:

getHibernateTemplate().saveOrUpdate(myEntity);

trong khi myEntity thiếu một số thuộc tính được đặt là not-null="true" nó là chính xác trong việc ném một ngoại lệ thời gian chạy. Khi ở trong môi trường thử nghiệm của mình, bạn rất có thể luôn đặt thuộc tính thành some không phải giá trị null.

Và thậm chí có một lợi thế. DB và App được ghép nối lỏng lẻo. Vì vậy, nếu cần, bạn có thể thực hiện nhiều ràng buộc hơn ở phía Ứng dụng, trong khi không chạm vào DB (ví dụ:bạn không được phép)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao hàm pi () không hoạt động trong Oracle khi sử dụng trình điều khiển JDBC của nó?

  2. đột biến, trình kích hoạt / chức năng có thể không nhìn thấy nó- lỗi trong quá trình thực thi trình kích hoạt

  3. Sử dụng chuỗi trong thủ tục lưu trữ Oracle

  4. Sự khác biệt giữa varchar và varchar2 trong Oracle là gì?

  5. chuỗi con trong oracle