这是我的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代码中编写的顺序相同的顺序创建列?
有没有任何注释?
问候
Hibernate小组的一位成员 说,假设您的意思是数据库表是通过hbm2ddl.auto设置为CREATE或类似方式生成的,则 至少在2008年之前 无法指定列的顺序。
hbm2ddl.auto
CREATE
我的建议是通过单独维护的数据库脚本创建数据库(可能与脚本部署/迁移工具(例如Flyway)结合使用,也许还hbm2ddl.auto = VALIDATE可以检查结果模式是否与实体匹配)。一旦应用程序投入生产,通过脚本维护数据库就变得更加必要。
hbm2ddl.auto = VALIDATE