【问题标题】:Change Hibernate default table structure更改 Hibernate 默认表结构
【发布时间】:2018-12-14 10:51:08
【问题描述】:

我想知道,当我将对象映射到 Mysql 时,我是否可以更改或设置 hibernate 所做的表结构的值。

我的问题是我是否有这个实体类:

@Entity
@Table(name="user_table")
public class User {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;

@Column(name="name")
@Basic(optional=false)
private String name;


private String adress;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getAdress() {
    return adress;
}

public void setAdress(String adress) {
    this.adress = adress;
}

}

默认情况下休眠使用此创建表,但我的观点是(名称)列是使用 [VARCHAR(255)] 创建的,我将其更改为例如 [VARCHAR(50)]

注意:

我尝试使用类似 => @Type(type="varchar(50)") 的东西

或

@Type(type="varchar-50")

但是没有用!!!

有什么帮助吗?

【问题讨论】:

    标签: java mysql hibernate orm


    【解决方案1】:

    设置长度应该可以解决问题

    @Column(name="name", length = 50)
    @Basic(optional=false)
    private String name;
    

    默认长度为 255。

    【讨论】:

    • 你是对的。这就是我努力实现的目标。非常感谢。但对我来说,我应该用@列而不是@Type来做这件事没有意义!!!!!! type 用于映射类型吧!有什么区别?
    • 它用于告诉您要在数据库中存储哪种类型的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    相关资源
    最近更新 更多