如何设置hibernate中具有最大长度的列的长度

sae*_*ash 26 java mysql hibernate

我想在数据库中保存一个对象.
我正在使用MySQL数据库,但是当我尝试它时,我得到一个异常,说:"数据大于列长度".
如何使用休眠增加列的长度?

vlc*_*mi3 69

如果您的列是varchar使用注释length

@Column(length = 255)
Run Code Online (Sandbox Code Playgroud)

或使用其他列类型

@Column(columnDefinition="TEXT")
Run Code Online (Sandbox Code Playgroud)

  • `columnDefinition`是DB依赖的,在PostgreSQL中有效的可能在MySQL中不起作用,请看这个问题:http://stackoverflow.com/questions/16414215/jpa-how-to-set-string-column-to-varcharmax-in -ddl (3认同)

bhd*_*rkn 5

您可以对列使用长度注释。通过使用它,您可以最大化或最小化色谱柱长度。长度注释仅用于Strings.

@Column(name = "NAME", nullable = false, length = 50)  
@Length(max = 50)
public String getName() {
    return this.name;
}
Run Code Online (Sandbox Code Playgroud)


小智 5

@Column(name = Columns.COLUMN_NAME, columnDefinition = "NVARCHAR(MAX)")
Run Code Online (Sandbox Code Playgroud)

max 表示最大存储大小为2 ^ 31-1字节(2 GB)