Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Hibernate's saveOrUpdate ignoruje niepustą właściwość kolumny

To jest absolutnie poprawne zachowanie.

not-null atrybut ma dwa znaczenia:

  • obsługa narzędzi eksportu schematów
  • sprawdź Entity w czasie wykonywania (tzn. nie sprawdzaj ustawienia kolumny bazy danych)

Zobacz:5.1. Deklaracja mapowania , wyciąg:

Oraz 5.1.11. Nieruchomość , wyciąg:

Tak więc, jeśli Twoi klienci uruchamiają jakiś kod, który próbuje:

getHibernateTemplate().saveOrUpdate(myEntity);

podczas gdy myEntity brakuje niektórych właściwości ustawionych jako not-null="true" jest poprawny w zgłaszaniu wyjątku środowiska uruchomieniowego. W środowisku testowym najprawdopodobniej zawsze ustawiasz właściwość na niektóre wartość nie pusta.

I jest nawet przewaga. DB i aplikacja są luźno powiązane. Więc w razie potrzeby możesz wprowadzić więcej ograniczeń po stronie aplikacji, nie dotykając bazy danych (np. nie możesz)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przekazać tablicę ciągów z C# do procedury składowanej Oracle

  2. jak przyspieszyć wybieranie losowych wierszy w Oracle dzięki tabeli z milionami wierszy

  3. Powiązanie zmiennej z nazwą tabeli za pomocą cx_Oracle

  4. Wypełnij wartości do listy rozwijanej na podstawie innego wyboru rozwijanego za pomocą JSTL

  5. Liczba wierszy w Oracle SQL Select?