37

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

4

6 回答 6

95

如果您的列varchar使用注释length

@Column(length = 255)

或使用其他列类型

@Column(columnDefinition="TEXT")
于 2012-11-13T15:57:28.650 回答
7
@Column(name = Columns.COLUMN_NAME, columnDefinition = "NVARCHAR(MAX)")

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

于 2014-02-11T05:09:05.853 回答
5

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

@Column(name = "NAME", nullable = false, length = 50)  
@Length(max = 50)
public String getName() {
    return this.name;
}
于 2012-11-13T15:59:02.583 回答
0

使用@Column注解并定义其length属性。检查Hibernate的文档以获取参考资料(第 2.2.2.3 节)。

于 2012-11-13T15:57:13.377 回答
0

与 mychalvlcek 的回答类似,您可以将长度属性用于字符串值,但是如果您想在数据库中设置为 VARCHAR(MAX),此解决方案在 MS SQL 中对我有用:

@Column(length = Integer.MAX_VALUE)
于 2021-07-16T03:23:12.507 回答
-1

你需要改变你的桌子。使用 DDL 语句增加列宽。

请看这里

http://dba-oracle.com/t_alter_table_modify_column_syntax_example.htm
于 2012-11-13T15:58:12.890 回答