当前位置: 代码迷 >> java >> Spring JPA不为实体创建表
  详细解决方案

Spring JPA不为实体创建表

热度:91   发布时间:2023-07-31 11:49:37.0

在这个项目中,我有以下实体:

  • 通知:其他通知实体要继承的实体
  • 信息

扩展Notification的实体将获得其表,但Message实体的表则未被创建。

通知类别:

@Data
@Entity
@NoArgsConstructor
@EqualsAndHashCode(of = "id")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Notification {
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    protected long id;
    // ... attributes
    @OneToMany(mappedBy = "notification")
    protected List<Message> messages;
}

讯息类别:

@Data
@Entity
@NoArgsConstructor
@EqualsAndHashCode(of = "id")
public class Message {
    @Id
    @GeneratedValue
    private long id;
    // ... attributes
    @JsonIgnore
    @ManyToOne
    private Notification notification;
    private boolean read;
}

application.yaml

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
  jpa:
    hibernate:
      naming:
        implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
      use-new-id-generator-mappings: true

application-dev.yaml-此配置文件处于活动状态

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3308/db
    username: dev
    password: dev
  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true
    generate-ddl: true

读取是在MySQL中的关键字。

  相关解决方案