Java 更改Hibernate默认表结构
我想知道是否可以像hibernate在将对象映射到Mysql时那样更改或设置表结构的值 我的问题是,如果我有这个实体类: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
@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来做这件事毫无意义!!!!!类型用于映射类型权限!区别是什么?它用来告诉您希望在数据库中存储什么类型的数据。