sql >> Databasteknik >  >> RDS >> Oracle

Hibernates saveOrUpdate ignorerar kolumnegenskapen not-null

Det är helt korrekt beteende.

not-null attribut har två betydelser:

  • stöd schemaexportverktyg
  • kontrollera Entity in runtime (dvs. kontrollera inte databaskolumninställningarna)

Se:5.1. Kartläggningsdeklaration , extrahera:

Och 5.1.11. Egendom , extrahera:

Så, om dina klienter kör någon kod, som försöker:

getHibernateTemplate().saveOrUpdate(myEntity);

medan myEntity saknar någon egenskap som är not-null="true" det är korrekt att kasta ett körtidsundantag. Medan du är i din testmiljö ställer du sannolikt alltid egenskapen till någon inte nullvärde.

Och det finns till och med en fördel. DB och App är löst kopplade. Så om det behövs kan du göra fler begränsningar på appsidan, utan att vidröra DB (t.ex. du är inte tillåten)



  1. Ska nya indexkolumner finnas i nyckeln eller inkluderas?

  2. Kan inte köra sql-fråga

  3. Snabbaste sättet att uppdatera 120 miljoner rekord

  4. PL/SQL FÖR LOOP IMPLICIT CURSOR