Как изменить порядок столбцов в таблице?

#java #spring #spring-boot #hibernate #h2

Вопрос:

Мне не нравится порядок столбцов в базе данных h2. Я использую аудит для создания таблиц.

Пример кода

 package ru.omega.vaccination.model.dto.audit;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.Column;
import javax.persistence.EntityListeners;
import javax.persistence.MappedSuperclass;
import java.io.Serializable;
import java.time.Instant;

@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(
    value = {"createdAt", "updatedAt"},
    allowGetters = true
)
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public abstract class DateAudit implements Serializable {

  @CreatedDate
  @Column(nullable = true, updatable = false)
  private Instant createdAt;

  @LastModifiedDate
  @Column(nullable = true)
  private Instant updatedAt;

}
 

И

 @Entity(name = "people")
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class People extends DateAudit  {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", updatable = false, nullable = false)
    private Long id;
    @Column
    private String lastname;
    @Column
    private String firstname;
    @Column
    private String patronymic;

    ...
}
 

В БД я вижу
введите описание изображения здесь

Я хотел бы переместить столбцы «CREATED_AT» «UPDATED_AT» в конец таблицы. Я не могу найти способ реализовать это. Я был бы рад увидеть примеры кода для решения такой проблемы.

Комментарии:

1. Как вы создали эту таблицу?

2. Как вы думаете, почему важен порядок столбцов?

3. Вы никогда не должны полагаться на порядок столбцов в таблице. Если вам нужен конкретный заказ, выберите его при выполнении запросов. Чего вы действительно хотите здесь достичь?

4. @GauravJeswani По hibernate

5. @SimonMartinelli требует, чтобы вы проверили базу данных вручную (много раз). Эти столбцы не представляют большой ценности при просмотре базы данных, но они мешают. В реальном проекте у меня есть около 10 колонок, которые следует удалить в конце, для более удобной работы.