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

时间:2012-11-13 15:50:42

标签: java mysql hibernate

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

6 个答案:

答案 0 :(得分:62)

如果您的专栏varchar使用注释length

@Column(length = 255)

或使用其他列类型

@Column(columnDefinition="TEXT")

答案 1 :(得分:5)

@Column(name = Columns.COLUMN_NAME, columnDefinition = "NVARCHAR(MAX)")

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

答案 2 :(得分:3)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

请看这里

http://dba-oracle.com/t_alter_table_modify_column_syntax_example.htm

答案 5 :(得分:0)

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

@Column(length = Integer.MAX_VALUE)