Het is absoluut correct gedrag.
De not-null
attribuut heeft twee betekenissen:
- hulpprogramma's voor het exporteren van schema's
- controleer de entiteit in runtime (d.w.z. controleer de instelling van de databasekolom niet)
Zie:5.1. Aangifte in kaart brengen , extract:
En 5.1.11. Eigendom , extract:
Dus, als uw klanten code uitvoeren, die probeert:
getHibernateTemplate().saveOrUpdate(myEntity);
terwijl de myEntity
mist een eigenschap die is ingesteld als not-null="true"
het is correct in het gooien van een runtime-uitzondering. In uw testomgeving stelt u de eigenschap waarschijnlijk altijd in op sommige geen null-waarde.
En er is zelfs een voordeel. De DB en App zijn losjes aan elkaar gekoppeld. Dus indien nodig kunt u meer beperkingen maken aan de app-kant, terwijl u de database niet aanraakt (u mag bijvoorbeeld niet)