Hibernate 未生成任何表

问题描述 投票:0回答:1

我正在学习 Spring 微服务并遇到一个问题: 首先我有这个 docker compose 文件:

version: '3.1'
services:
  mongo:
    image: mongo
    container_name: mongo
    restart: always
    ports:
      - 27017:27017

  mysql:
    image: mysql
    restart: always
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 'rootpassword'
    ports:
      - "3307:3306"

  elasticsearch:
    image: elasticsearch:8.11.3
    container_name: elasticsearch
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      discovery.type: single-node

这是配置的 yaml 文件:

server:
  port: 7203

spring:
  application:
    name: taskservice

  datasource:
    url: jdbc:mysql://localhost:3307/TaskDB
    username: root
    password: rootpassword
    driver-class-name: com.mysql.cj.jdbc.Driver
    jpa:
      show-sql: true
      hibernate:
        ddl-auto: update
      properties:
        hibernate:
          dialect: org.hibernate.dialect.MySQLDialect

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:7201/eureka/

我已经测试了连接并在 DataGrip 上添加了名为“TaskDB”的模式。当我运行该应用程序时,不会生成该表。 这是实体类:

@Entity
@Table(name = "tasks")
@EqualsAndHashCode(of = {"id"})
public class Task extends CoreEntity {
    @Id
    @Getter
    @GeneratedValue(generator = "UUID")
    @GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator")
    @Column(name = "id")
    private String id;
    @Getter
    @Setter
    @Column(name = "title")
    private String taskTitle;
    @Getter
    @Setter
    @Column(name = "description", length = 600)
    private String taskDescription;
    @Getter
    @Setter
    @Column(name = "notes")
    private String notes;
    @Getter
    @Setter
    @Column(name = "assignne", length = 50)
    private String assignee;
    @Getter
    @Setter
    @Column(name = "startDate")
    private Timestamp taskStartDate;
    @Getter
    @Setter
    @Enumerated(EnumType.ORDINAL)
    private TaskStatus taskStatus;
    @Getter
    @Setter
    @Enumerated(EnumType.ORDINAL)
    private PriorityType priorityType;
}

为什么这个表没有生成?

mysql spring-boot docker hibernate
1个回答
0
投票

设置

jpa
应位于
spring
下方,而不是位于
datasource
下方。完整正确的键是
spring.jpa.hibernate.ddl-auto=update

© www.soinside.com 2019 - 2024. All rights reserved.