sql >> Database >  >> RDS >> Oracle

Hibernate's saveOrUpdate negeert de niet-null kolomeigenschap

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)



  1. Hoe om te gaan met BOB-uitzonderingen

  2. Tijdstempel retourneren met voorbereide verklaring

  3. Mysql_fetch_assoc automatisch retourgegevenstypen laten detecteren?

  4. Krijg alle berichten met een specifieke tag en bewaar alle andere tags op resultaten met SQL