如何修改Spring Boot JPA生成表列顺序

时间:2019-01-23 12:09:02

标签: spring-boot spring-data-jpa

在我的代码中,我创建了一个类

@Data
@Entity
@Table(name = "sys_role")
@EntityListeners(AuditingEntityListener.class)
public class SysRole implements Serializable {

    /**
     * 主键
     */
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 角色名,按照SpringSecurity的规范,以ROLE_开头
     */
    @Basic
    @Column(name = "name", unique = true, nullable = false, columnDefinition = "varchar(20) not null comment '角色名,按照SpringSecurity的规范,以ROLE_开头'")
    private String name;

    /**
     * 角色名,中文
     */
    @Basic
    @Column(name = "name_zh", nullable = false, columnDefinition = "varchar(255) not null comment '角色名,中文'")
    private String nameZh;

    /**
     * 排序
     */
    @Basic
    @OrderColumn(name = "sort")
    private Integer sort;

    /**
     * 是否启用
     */
    @Basic
    @Column(name = "enabled", nullable = false, columnDefinition = "bit not null default 1 comment '是否启用'")
    private Boolean enabled;

    /**
     * 创建时间
     */
    @Basic
    @CreatedDate
    @Column(name = "create_time", nullable = false, columnDefinition = "datetime not null default now() comment '创建时间'")
    private LocalDateTime createTime;

    /**
     * 创建用户
     */
    @CreatedBy
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "create_user")
    private SysUser createUser;

    /**
     * 修改时间
     */
    @Basic
    @LastModifiedDate
    @Column(name = "modify_time", nullable = false, columnDefinition = "datetime not null default now() comment '修改时间'")
    private LocalDateTime modifyTime;

    /**
     * 修改用户
     */
    @LastModifiedBy
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "modify_user")
    private SysUser modifyUser;

    /**
     * 备注
     */
    @Basic
    @Column(name = "remark")
    private String remark;

}


运行时它将生成一个表 enter image description here

我发现列的顺序是

  • id
  • create_time
  • 已启用
  • modify_time
  • 名称
  • name_zh
  • 备注
  • ...

但是我想得到这个:

  • id
  • 名称
  • name_zh
  • create_time
  • create_user
  • modify_time
  • modify_user
  • ...

为什么?使用此序列时,我无法更快地插入数据。

enter image description here

我需要

enter image description here

在开发环境中,spring.jpa.hibernate.ddl-auto: create。因此,我不想每次都通过更改数据库列序列来更改序列。如何生成正确的表列序列?

你能帮我吗?谢谢!

0 个答案:

没有答案