应用程序运行时,持久性提供程序运行时(即Hibernate)使用@Column
和nullable
等各种length
元素是怎样的?
据我所知,有些元素仅用于模式生成,但我无法找到它的用语。仔细阅读JPA 2.1规范似乎并没有说明属性是否具有运行时效果。
第11.1.9节列出了所有@Column
元素:name
,unique
,nullable
,insertable
,updatable
,{{ 1}},columnDefinition
,table
,length
,precision
第11.2.2.1节列出了模式生成中使用的scale
元素,但它不表明列出的元素完全用于模式生成。事实上,我相信列出的@Column
和name
也具有运行时效果:它们指示持久性提供程序的运行时映射。唯一未列出的元素是table
和insertable
,因此似乎暗示这些元素具有运行时效果,否则它们没有任何用途。
从我能够从JPA规范和其他SO问题和答案中收集到的内容如下:
具有仅运行时效果的@Column元素:
updatable
insertable
@Column元素两者运行时效果并用于模式生成:
updatable
table
@Column元素仅使用 进行模式生成(在运行时无效):
name
length
nullable
precision
scale
unique
这是正确的,是他们的任何官方或半官方文件吗?