Java hibernate:如何将列varchar设置为max?

时间:2015-12-06 11:32:48

标签: java mysql hibernate

我有专栏String post

我希望将此post映射为字符串。

我正在使用:

@Column(updatable = true, name = "Post", nullable = false, length=50)
    public String getPost() {
        return post;
    }

此代码映射varchar(50)

我怎样才能varchar(max)

我试试这段代码。但是我无法编译它。

@Column(updatable = true, name = "Post", nullable = false, length=max)
    public String getPost() {
        return post;
    }

感谢您的回复。

2 个答案:

答案 0 :(得分:0)

可以使用以下代码完成:

@Column(updatable = true, name="Post", nullable = false, columnDefinition = "varchar(max)")
private String post;

Haven没有试过这个,但它应该基于这个columnDefinition

UPD#1

基本上您可以添加注释@Lob或在length中为@Column使用非常大的值。

来自documentation

  

@Lob表示该属性应保留在Blob或Clob中,具体取决于属性类型:java.sql.ClobCharacter[]char[]java.lang.String将坚持在Clob。 java.sql.BlobByte[]byte[]和可序列化类型将保留在Blob中。

答案 1 :(得分:0)

尝试这样写:

 @Column(updatable = true,name="Post",nullable = false,columnDefinition = "varchar(255)")
 public String getPost() {
    return post;
}

有关详细信息,请转到link