事实上,我正试图通过这个教程学到一些东西- https://www.youtube.com/watch?v=9SGDpanrc8U&t=2027s

现在,我将我的新数据库与我的Sping(Java)东西连接起来. 但.我不明白为什么IJ和SQL Shell中的In Run输出显示错误的行序. The first line in column should be ID. After should go - name,email, date,age.

实际上,它显示的是年龄、日期、身份、邮箱和姓名.我怎么才能改变它呢?求求你,救命.

来自SQL Shell的示例-

 Column |          Type          | Collation | Nullable | Default
--------+------------------------+-----------+----------+---------
 age    | integer                |           |          |
 dob    | date                   |           |          |
 id     | bigint                 |           | not null |
 email  | character varying(255) |           |          |
 name   | character varying(255) |           |          |
Indexes:
    "student_pkey" PRIMARY KEY, btree (id)

我的学生班级-


@Entity
@Table
public class Student {

    @Id
    @SequenceGenerator(
            name = "student_sequence",
            sequenceName = "student_sequence",
            allocationSize = 1
    )
    @GeneratedValue(
            strategy = GenerationType.SEQUENCE,
            generator = "student_sequence"
    )
    private Long id;
    private String name;
    private String email;
    private LocalDate dob;
    private Integer age;

    public Student() {
    }

    public Student(Long id, String name, String email, LocalDate dob, Integer age) {
        this.id = id;
        this.name = name;
        this.email = email;
        this.dob = dob;
        this.age = age;
    }

    public Student(String name, String email, LocalDate dob, Integer age) {
        this.name = name;
        this.email = email;
        this.dob = dob;
        this.age = age;
    }

Getters,Setters and to String

我试着把Long改成Long,其他什么都不做.我不知道怎么改变这里的线路顺序.看起来一切都很好.

推荐答案

因为您通过将spring.jpa.hibernate.ddl-auto设置为create-drop来将Hibernate配置为自动生成和创建表模式.它有自己的规则来确定生成的CREATE TABLES DDL中的列的顺序,这与Related Entity Java类中的字段顺序无关.

从Hibernate6.2开始,它提供了一种在生成的DDL中自定义列顺序的方法,直到ColumnOrderingStrategy,但您想要的行为仍然不支持开箱即用.

如果您希望完全控制定义表中的列顺序,您必须自己手动创建表,而不是依赖Hibernate来完成.您必须将spring.jpa.hibernate.ddl-auto设置为none,才能告诉Hibernate不要这样做.

一百零二

Java相关问答推荐

从头开始使用Jgit初始化InMemoryRepository

如何计算内循环的时间复杂度?

当一个链表中间有一个循环时,它的松散部分会发生什么?

如何在Java中声明未使用的变量?

流迭代列表<;对象>;上的NoSuchElementException

对某一Hyroby控制器禁用@cacheable

AssertJ Java:多条件断言

测试期间未执行开放重写方法

无法使用Java&;TestContainers获取AWS SQS队列的属性

Com.google.firebase.database.DatabaseException:无法将类型为java.lang.Boolean的值转换为字符串.这是关于什么的?

如何在JavaFX中处理多个按钮

为什么我的回收视图会显示重复的列表?

具有多个模式的DateTimeForMatter的LocalDate.parse失败

从12小时开始的日期模式

字符串的Gzip压缩在java11和java17中给出了不同的结果

多线程、并发和睡眠未按预期工作

这是JavaFX SceneBuilder的错误吗?

message.acknowledge()没有';在使用Spring Boot在ActiveMQ中读取消息后,t将消息出列

可以';不要在Intellij IDEA中使用最新的Java版本(JDK 21)

窗口启动后不久,从java.awt.Graphics disapear创建的矩形