如何禁用hibernate以按字母顺序生成列名

k4aesqcs  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(300)

我有一个具有以下列的实体:

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

尽管我在查询中把变量按相同的顺序排列。如何控制这种按字母顺序生成表列的行为?

d8tt03nd

d8tt03nd1#

当hibernate自动生成或创建表时,没有特定的列顺序。
对于许多开发人员来说,这是一个问题,但是hibernate团队仍然没有提供任何解决方案。
如果需要,可以按字母顺序手动创建表列。我可以建议你这样做。

相关问题