Gordon Yorke(Eclipselink体系结构委员会成员,Toplink核心技术负责人,JPA
2.0专家组成员)在此主题上写了一个很好的答案,因此,我不用表述他,而是引用他的答案:
optional和 之间的区别nullable是评估它们的范围。’optional‘
的定义讨论了属性和字段值,并建议应在运行时内评估此功能。“nullable”仅指数据库列。如果实现选择实现,
optional则这些属性应由持久性提供程序在内存中进行评估,并在将SQL发送到数据库之前引发异常,否则在使用’updatable=false’‘optional‘时将永远不会报告违规。



