这是我的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代码中编写的顺序相同的顺序创建列?
是否有任何注释?
问候
答案 0 :(得分:7)
假设您的意思是数据库表是通过hbm2ddl.auto
生成的CREATE
或类似的,there is no way to specify the order of the columns 生成的,至少在2008年,根据Hibernate团队的一名成员< / em>的
我的建议是通过单独维护的数据库脚本创建数据库(可能与脚本部署/迁移工具结合使用,如Flyway,也可能与hbm2ddl.auto = VALIDATE
一起检查生成的模式是否匹配实体)。一旦应用程序投入生产,通过脚本维护数据库变得更加必要。