【问题标题】:Java Hibernate creates db table with Varchar(255), how to increase to Varchar(1000)?Java Hibernate 用 Varchar(255) 创建 db 表,如何增加到 Varchar(1000)?
【发布时间】:2013-11-11 12:45:56
【问题描述】:

我想在Java Hibernate自动创建表时将255增加到1000,但是怎么做呢?

可能需要更改的部分代码:

@Entity
public class Work implements Serializable {

    @Id
    @GeneratedValue

    private long workNumber;
    private int fromYear;
    private int tillYear;
    private String name;
    private String profession;
    private String description;

    @ManyToOne
    private User user;

    public Work() {
    }

    public Work(long workNumber, int fromYear, int tillYear, String name, String profession, String description) {
        this.setWorkNumber(workNumber);
        this.setFromYear(fromYear);
        this.setTillYear(tillYear);
        this.setName(name);
        this.setProfession(profession);
        this.setDescription(description);
    }

【问题讨论】:

    标签: java mysql database hibernate


    【解决方案1】:

    为什么不简单地尝试一下

    @Column(columnDefinition="varchar(1000)")?

    【讨论】:

      【解决方案2】:

      您需要在注释中明确指定,例如您的代码看起来像的职业属性

      @Column(length=1000)
      private String profession;
      

      如果您希望对象中的属性名称与数据库中列的名称不同,则同样的原则适用,您可以通过一些配置来覆盖约定。

      【讨论】:

      • 我试过了,但是数据类型从varchar(255)变成了TEXT,这正常吗?
      • 试试这个:@Column(length=1000, columndefinition="varchar")
      • 取决于您的数据库,您使用的是哪一个?
      • @FredericClose 那行不通,我的代码现在甚至无法运行
      • @AlanHay 我只希望它是 varchar 1000
      【解决方案3】:

      您向属性添加@Column 注释并在其上设置长度属性:非常非常基本的 JPA 内容。您最好至少阅读有关该主题的 Java EE 6 教程,以了解可用的基本注释。

      【讨论】:

        猜你喜欢
        • 2011-02-11
        • 2017-10-12
        • 2014-01-14
        • 1970-01-01
        • 1970-01-01
        • 2011-06-09
        • 1970-01-01
        • 2011-12-07
        • 1970-01-01
        相关资源
        最近更新 更多