使用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; } 

等等……

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

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

是否有任何注释?

问候

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

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