Java 更改Hibernate默认表结构

Java 更改Hibernate默认表结构,java,mysql,hibernate,orm,Java,Mysql,Hibernate,Orm,我想知道是否可以像hibernate在将对象映射到Mysql时那样更改或设置表结构的值 我的问题是,如果我有这个实体类: @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

我想知道是否可以像hibernate在将对象映射到Mysql时那样更改或设置表结构的值

我的问题是,如果我有这个实体类:

@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;
}

}
默认情况下,hibernate使用此选项创建表,但我的观点是,(name)列是使用[VARCHAR(255)]创建的,例如,我将其更改为[VARCHAR(50)]

注:

我尝试使用=>@Type(Type=“varchar(50)”之类的东西

@类型(Type=“varchar-50”)

但是它不起作用


有什么帮助吗?

设置长度就可以了

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

默认长度为255。

您是对的。这就是我努力实现的目标。非常感谢。但对我来说,用@column而不是@Type来做这件事毫无意义!!!!!类型用于映射类型权限!区别是什么?它用来告诉您希望在数据库中存储什么类型的数据。