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