当前位置: 首页 > 面试题库 >

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

韩嘉胜
2023-03-14
问题内容

这是我的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年之前 无法指定列的顺序。

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



 类似资料:
  • 我已经使用Hibernate将Java对象映射到PostgreSQL数据库。UserDetails类是用来添加用户的实体类,它包含一个名为Address的嵌入对象。 userdetails.java 生成的SQL查询如下所示,它显示列的添加顺序与声明列的顺序不同。 在Hibernate中添加哪些列有什么规则吗?

  • 问题内容: 我们创建为: 我们如何用Java 创建一个? 问题答案: 或使用泛型(Java 7或更高版本) 或带有泛型(旧的Java版本)

  • 问题内容: 我正在使用JSONObject来删除JSON字符串中不需要的certin属性: 它可以正常工作,但是问题是JSONObject是“名称/值对的无序集合”,我想保持String在通过JSONObject操作之前的原始顺序。 任何想法如何做到这一点? 问题答案: 你不能 这就是为什么我们称其 为名称/值对的无序集合 。 我不确定为什么需要这样做。但是,如果要订购,则必须使用json数组。

  • 我有以下数据帧: am使用以下列表筛选数据帧: 并使用以下命令获得以下输出: 输出 如何更改代码,使索引如下所示? 本质上,我正在寻找一种方法来过滤具有列表的DF,并按照筛选列表的顺序返回原始索引值。 谢谢 我查看了这个,但并没有找到我要查找的内容:按列表的顺序从列表中选择数据帧的行

  • 我有一个包含病人姓名和紧急级别的类,实现了可比较的: **假设这是我的输入文件: *3=查询数,0=要添加到arraylist中的新患者,1=更新紧急级别(示例30+30=60)。2=按降序和名称打印紧急级别。** 然而,我的程序成功地扫描并向arraylist中添加了新的病人,但每当需要更新紧急级别时,序列都是错误的。 例如,在david紧急级别更新之前,序列是(david 60,david 3

  • 应用:Hibernate、Spring 3.0 MVC、JSP(使用Spring表单) 要求:使用Hibernate从数据库中选择一个表数据,并使用Spring MVC将其显示为JSP页面中的下拉列表。 代码:Hibernate/道代码是 烹饪课 食谱DaoImpl类 SpringMVC JSP页面: 在这样做时,我收到以下错误: 有人能建议如何解决这个问题吗?我已经检查了几篇文章,并试图复制它们