随着JPA ,DDL代的属性:
@Column
final String someString;
将someString varchar(255) null
@Column(length = 1337)
final String someString;
将产生someString varchar(1337) null
。
但是,我怎么能得到它的产生someString varchar(max) null
?
是否有可能使用length
-attribute,或者我需要使用columnDefinition
-attribute?
几个月过去了,新的知识储备,所以我会回答我的问题:
@Lob
@Column
final String someString;
得到最正确的结果。 随着版本hbm2ddl
我使用,这将转化为类型text
与SqlServerDialect
。 由于varchar(max)
是替换为text
中的较新版本的SQL Server ,希望的新版本hbm2ddl
会产生varchar(max)
,而不是text
这种类型的映射(我被困在在休眠的一个非常陈旧的版本此时此刻..)
由于length
在JPA规范和Javadoc定义int
型和max
不是int
那么它是安全的假设,你委托给columnDefinition
数据存储相关的路线。 但随后varchar(max)
的数据存储相关的反正。
您可以使用此代码 -
型号代码:
@NotNull
@Length(max = 7)
@Column(name = "Gender")
private String gender;
SQL输出是喜欢 -
> gender varchar(7)
使用@Size(max = 1337)
它产生varchar(1337)