use*_*201 2 ddl hibernate jpa spring-data-jpa spring-boot
我正在使用 MySQL 创建一个新的 Spring boot 项目,但我不知道为什么我的数据库中的排序是按字母顺序显示的。我想知道它是否可以遵循我的班级顺序,如 ID、姓名、电子邮件、性别和年龄。
这是我第一次使用这种方法生成数据库,通常我是从phpMyAdmin生成的。
这是我在 phpMyAdmin 中的最终结果:
id, address, age, email, gender, name
Run Code Online (Sandbox Code Playgroud)
我希望它遵循我的实体类的顺序:
id, name, email, gender, age, address
Run Code Online (Sandbox Code Playgroud)
这是我的application.properties:
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
Run Code Online (Sandbox Code Playgroud)
我还创建了User.java:
id, address, age, email, gender, name
Run Code Online (Sandbox Code Playgroud)
和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> {
}
Run Code Online (Sandbox Code Playgroud)
是的,你是对的,hibernate DDL 按字母顺序生成列名称。当 hibernate 解析实体映射时,它会根据实体类中的字段构建模型。为了处理实体属性/字段,它使用 PropertyContainer 帮助器类,并且该帮助器将字段存储在 TreeMap 中。当 DDL 生成器开始工作时,它会迭代字段并创建数据库列名称,因为 TreeMap 中的迭代器给出了所有列名称的排序顺序。你无法改变它。
| 归档时间: |
|
| 查看次数: |
7462 次 |
| 最近记录: |