Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 哪些JPA@Column元素具有运行时效果?_Hibernate_Jpa - Fatal编程技术网

Hibernate 哪些JPA@Column元素具有运行时效果?

Hibernate 哪些JPA@Column元素具有运行时效果?,hibernate,jpa,Hibernate,Jpa,当应用程序运行时,持久性提供程序运行时(即Hibernate)如何使用各种@Column元素,例如nullable和length 我知道有些元素仅用于模式生成,但我找不到这是在哪里声明的。仔细阅读JPA2.1规范似乎并不能说明属性是否具有运行时效果 第11.1.9节列出了所有@列元素:名称,唯一,可空,可插入,可更新,列定义,表,长度,精度,比例 第11.2.2.1节列出了架构生成中使用的@列元素,但没有说明所列元素是架构生成中唯一使用的。事实上,我相信列出的name和table也有运行时效果:

当应用程序运行时,持久性提供程序运行时(即Hibernate)如何使用各种
@Column
元素,例如
nullable
length

我知道有些元素仅用于模式生成,但我找不到这是在哪里声明的。仔细阅读JPA2.1规范似乎并不能说明属性是否具有运行时效果

第11.1.9节列出了所有
@列
元素:
名称
唯一
可空
可插入
可更新
列定义
长度
精度
比例

第11.2.2.1节列出了架构生成中使用的
@列
元素,但没有说明所列元素是架构生成中唯一使用的。事实上,我相信列出的
name
table
也有运行时效果:它们指导持久性提供者的运行时映射。唯一未列出的元素是
可插入的
可更新的
,因此似乎暗示这些元素具有运行时效果,否则它们没有任何用途


根据我从JPA规范和其他SO规范中收集到的信息,问题和答案如下:

@仅具有运行时效果的列元素:

  • insertable
  • 可更新的
@同时具有运行时效果并用于架构生成的列元素:

  • 表格
  • name
@仅用于架构生成的列元素(运行时无效):

  • 长度
  • nullable
  • 精度
  • 比例
  • unique
  • 列定义


这是正确的吗?他们的任何官方或半官方文档都是这样吗?

columnDefinition
仅用于生成模式,它覆盖
长度
精度
比例
。似乎
columnDefinition
也应该覆盖唯一和可为空的,不是吗?你在哪里找到这些信息的?谢谢