JPA - 如何DDL设置字符串列为varchar(最大值)(JPA - How to set s

2019-09-02 03:52发布

随着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?

Answer 1:

几个月过去了,新的知识储备,所以我会回答我的问题:

@Lob
@Column
final String someString;

得到最正确的结果。 随着版本hbm2ddl我使用,这将转化为类型textSqlServerDialect 。 由于varchar(max)是替换为text中的较新版本的SQL Server ,希望的新版本hbm2ddl会产生varchar(max) ,而不是text这种类型的映射(我被困在在休眠的一个非常陈旧的版本此时此刻..)



Answer 2:

由于length在JPA规范和Javadoc定义int型和max不是int那么它是安全的假设,你委托给columnDefinition数据存储相关的路线。 但随后varchar(max)的数据存储相关的反正。



Answer 3:

您可以使用此代码 -

型号代码:

@NotNull  
@Length(max = 7)  
@Column(name = "Gender")  
private String gender;

SQL输出是喜欢 -

> gender varchar(7)


Answer 4:

使用@Size(max = 1337) 它产生varchar(1337)



文章来源: JPA - How to set string column to varchar(max) in DDL