使用hibernate创建新表时如何维护列顺序?

Son*_*ony 11 java database hibernate

这是我的pojo注释为实体

@Entity
@Table(name = "book", catalog = "book_db")
public class Book {
    private Integer bookId;
    private String bookName;
    private String bookShortDesc;
    private String bookDesc;
    private String bookAuthor;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "book_id", unique = true, nullable = false)
public Integer getBookId() {
    return this.bookId;
}

@Column(name = "book_name", nullable = false, length = 256)
public String getBookName() {
    return this.bookName;
}
@Column(name = "book_short_desc", nullable = false, length = 1024)
public String getBookShortDesc() {
    return this.bookShortDesc;
}
Run Code Online (Sandbox Code Playgroud)

等等......

上面的实体是使用注释创建的,当我查看mysql数据库时,列不是按顺序创建的,我已经在下面写了,相反,第一列是book_id,然后是book_desc,然后是book_athor,然后是book_short_desc然后是book_name.

我的问题是我怎么能告诉hibernate创建列与我在java代码中编写的相同的顺序?

是否有任何注释?

问候

Ste*_*ers 9

假设您的意思是数据库表是通过hbm2ddl.auto设置CREATE或类似生成的,根据Hibernate团队的一名成员,至少在2008年无法指定列的顺序 .

我的建议是通过单独维护的数据库脚本创建数据库(可能与诸如Flyway之类的脚本部署/迁移工具结合使用,也可能hbm2ddl.auto = VALIDATE用于检查生成的模式与实体匹配).一旦应用程序投入生产,通过脚本维护数据库变得更加必要.