sql >> Databáze >  >> RDS >> Oracle

SaveOrUpdate aplikace Hibernate ignoruje vlastnost sloupce, která není null

Je to naprosto správné chování.

not-null atribut má dva významy:

  • podpora nástrojů pro export schématu
  • zkontrolujte Entitu za běhu (tj. nekontrolujte nastavení sloupce databáze)

Viz:5.1. Prohlášení o mapování , výpis:

A 5.1.11. Vlastnost , výpis:

Pokud tedy vaši klienti spouštějí nějaký kód, zkuste:

getHibernateTemplate().saveOrUpdate(myEntity);

zatímco myEntity chybí nějaká vlastnost nastavená jako not-null="true" je správné vyvolání výjimky za běhu. V testovacím prostředí s největší pravděpodobností vždy nastavíte vlastnost na nějaké není nulová hodnota.

A má to dokonce výhodu. DB a aplikace jsou volně propojeny. Takže v případě potřeby můžete udělat více omezení na straně aplikace, aniž byste se dotkli DB (např. nemáte povoleno)



  1. Jak libovolně bin v MySQL?

  2. Zobrazit všechna data mezi, i když žádný výsledek

  3. Jak navrhnu tabulku, která bude ukládat velmi velká data?

  4. změnit formát data z char