当前位置: 首页 > 知识库问答 >
问题:

Spring boot从数据库中显示顺序错误的实体创建表

龙星渊
2023-03-14

我正在用MySQL创建一个新的Spring Boot项目,我不知道为什么数据库中的顺序会按字母顺序显示。我想知道是否可以按照我的班级顺序排序,如id、姓名、电子邮件、性别和年龄。

这是我第一次使用此方法生成数据库,通常是从phpMyAdmin生成。

以下是我在phpMyAdmin中的最终结果:

id, address, age, email, gender, name

我希望它遵循我的实体类中的顺序,即:

id, name, email, gender, age, address

这是我的应用程序属性

logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR

spring.datasource.url=jdbc:mysql://localhost:3306/db
spring.datasource.username=user
spring.datasource.password=x


spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

我还创建了< code>User.java:

package hello.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity // This tells Hibernate to make a table out of this class
public class User {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;

    private String name;

    private String email;

    private String gender;

    private String age;

    private String address;

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }



    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }


}

UserRepository.java

package hello.model;

import org.springframework.data.repository.CrudRepository;

import hello.model.User;

// This will be AUTO IMPLEMENTED by Spring into a Bean called userRepository
// CRUD refers Create, Read, Update, Delete

public interface UserRepository extends CrudRepository<User, Long> {

}

共有1个答案

龚勇锐
2023-03-14

是的,你是对的hibernate DDL按照字母顺序生成列名。当hibernate解析实体映射时,它基于实体类中的字段构建模型。为了处理实体属性/字段,它使用PropertyContainer帮助器类,该帮助器将字段存储在TreeMap中。当DDL生成器开始工作时,它迭代字段并创建数据库列名,因为来自TreeMap迭代器给所有列名排序。你不能改变它。

 类似资料:
  • 我想创建网站。我已经配置了登录“/login”和注册“/registration”页面。这个网站的主要任务是显示每个学生的时间表。现在我需要在页面“/Schedule”上显示科目列表,使用HTML-table,根据学生注册时选择的字段组和课程。我有14个不同的表格和科目列表(一个表格-一组学生)。 是否需要为每个表创建@Entity类和存储库? 如何使用注册数据显示学生信息? 页面“/计划”的控制

  • 我正在使用从数据库中获取一些数据。如果我使用,我的resultset是一个类的列表,这是需要的。 如果我没有获取整行内容,我如何让自动创建实体?

  • 我试图在phpmyadmin中为我的服务器构建一个数据库,但是当我完成构建后,我无法使用PHP访问它,并且当我在MySQL中列出数据库时,它也不会显示出来。但当我在mySql中创建数据库时,它会显示在phpmyadmin中。另外,我正在运行phpmyadmin版本4.0.3,页面底部有一条声明说

  • 数据库显示 show databases; mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | app_blogcurder | | auth_demo | | canzhieps

  • 我正试图在我的jFrame中添加一个jTable,我想将数据库表中的记录显示到jTable中。 我能够创建一个jTable(我将代码放在构造函数中),并在代码中手动输入要显示的值。奏效了。但是当我试图调用一个从数据库中检索数据的方法,并试图在JTable中显示这些数据时。它给我一个错误“NullPointerException”。 构造函数中创建表的代码: 方法从数据库中检索数据并将其添加到表中:

  • 问题内容: 我正在尝试执行本教程http://www.asp.net/mvc/tutorials/getting-started-with-aspnet- mvc3/getting-started-with- mvc3-part4-cs, 但不是使用精简版的SQL Server我在本地计算机上使用完整安装。我阅读本教程的方式是,实体框架是根据我定义的对象创建表的。我的问题是,在运行项目时,我总是得