我有一个具有以下列的实体:
@Table(name="person")
public class Person {
@Id
@GeneratedValue
private int id;
private String name;
private String location;
@CreationTimestamp
private Date brithDate;
public Person() {
}
public Person(String name, String location, Date brithDate) {
this.name = name;
this.location = location;
this.brithDate = brithDate;
}
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 getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public Date getBrithDate() {
return brithDate;
}
public void setBrithDate(Date brithDate) {
this.brithDate = brithDate;
}
@Override
public String toString() {
return "\nPerson [id=" + id + ", name= " + name + ", location= " + location + ", brithDate= " + brithDate + "]";
}
}
生成表后,它将生成以下列:
与此查询生成的表完全不同:
CREATE TABLE person(
id INTEGER NOT NULL,
name VARCHAR(255) NOT NULL,
location VARCHAR(255),
birth_date TIMESTAMP,
PRIMARY KEY(id)
);
尽管我在查询中把变量按相同的顺序排列。如何控制这种按字母顺序生成表列的行为?
1条答案
按热度按时间d8tt03nd1#
当hibernate自动生成或创建表时,没有特定的列顺序。
对于许多开发人员来说,这是一个问题,但是hibernate团队仍然没有提供任何解决方案。
如果需要,可以按字母顺序手动创建表列。我可以建议你这样做。