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)