JPA - 如何在 DDL 中将字符串列设置为 varchar(max)

2022-08-31 17:32:29

使用 JPA,属性的 DDL 生成:

@Column
final String someString;

将是someString varchar(255) null

@Column(length = 1337)
final String someString;

将产生 。someString varchar(1337) null

但是我怎样才能让它生产呢?someString varchar(max) null

是否可以使用 -属性,或者是否需要使用 -属性?lengthcolumnDefinition


答案 1

几个月过去了,获得了新的知识,所以我将回答我自己的问题:

@Lob
@Column
final String someString;

产生最正确的结果。使用我正在使用的版本,这将转换为带有 .由于 varchar(max)较新版本的 SQL Server 中文本的替代品,因此希望较新版本的 将产生而不是这种类型的映射(我目前被困在一个相当过时的 Hibernate 版本。hbm2ddltextSqlServerDialecthbm2ddlvarchar(max)text


答案 2

由于 在 JPA 规范和 javadocs 中被定义为类型,并且不是类型,因此可以安全地假设您被委托给依赖于数据存储的路由。但无论如何,这都是依赖于数据存储的。lengthintmaxintcolumnDefinitionvarchar(max)


推荐