java - 如何更改 JPA - Spring Framework 数据库中的顺序

标签 java spring hibernate spring-boot jpa

我听说Hibernate只能在数据库中创建按字母顺序排列的表。 但这些问题已有 10 多年历史了。

现在怎么样?是否有可能进行更改,以便 Hibernate 中的 JPA 可以创建一个具有正确索引的表。这一定是可能的。我的意思是……现在是 2020 年了。

这是我的代码片段。

@Getter
@Setter
@Entity
public class MyTable{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    private float f1;
    private float f2;
    private float f3;
    private float f4;
    private float f5;
    private float f6;
    private float f7;
    private float f8;
    private float f9;
    private float f10;
    private float f11;
    private float f12;
    .
    .
    .
    private float f1000;


}

但是除了 ID 列之外,该表的索引与字段的索引不同。它总是在左边第一个。

我想要一个带有索引的表格:

id, f1, f2, f3, f4....

最佳答案

虽然列的顺序并不重要,并且 Hibernate仍然可能不允许对此进行控制,但您始终可以使用不同的工具来管理您的架构。两个例子是 FlywayLiquibase .

这两个工具不仅允许您控制表创建,还允许您在架构开发和更改时进行正确的迁移。无论如何,这在生产环境中通常更好,因为数据库更改将在代码存储库中得到正确管理,并且可以进行测试。

关于java - 如何更改 JPA - Spring Framework 数据库中的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59981484/

相关文章:

java - Hibernate AOP 事务和 java.io.EOFException

java - Android将gmt时间转换为可读日期

java - Penn Treebank 词性符号本身在 CoreNLP 代码中的什么位置实际表示?

spring - spring 如何在freemarker模板中获取请求上下文

hibernate - 混合 RDF 和 ORM 方法

java - @Transactional 上的 Spring Hibernate LazyInitializationException

java - 未找到当前线程的 session (Spring 3.1.X 和 Hibernate 4)

java - 泛型有界类型参数

java - 如何识别 Java 字节码中的覆盖方法?

java - 在 Web 应用程序中运行时动态加载 Spring 上下文