【问题标题】:Java hibernate: How to set column varchar to max? [duplicate]Java hibernate:如何将列 varchar 设置为最大值? [复制]
【发布时间】:2016-03-11 01:47:23
【问题描述】:

我有专栏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;
    }

感谢您的回复。

【问题讨论】:

    标签: java mysql hibernate


    【解决方案1】:

    这可以使用下面的代码来完成:

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

    没有尝试过,但它应该基于columnDefinition 工作。

    UPD #1

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

    来自documentation

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

    【讨论】:

    • 我试试你的代码,但这段代码没有映射我的表。
    【解决方案2】:

    试着这样写:

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

    欲了解更多信息,请转到link

    【讨论】:

    • 我不认为 50 是最大的。
    猜你喜欢
    • 2021-10-15
    • 2017-07-28
    • 2017-07-18
    • 1970-01-01
    • 2019-12-25
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多