为了账号安全,请及时绑定邮箱和手机立即绑定

spring boot无法在mysql数据库中生成表

spring boot无法在mysql数据库中生成表

墨色风雨 2022-12-15 16:53:12
我正在尝试从 defiend JpaEntities 更新数据库模式,但 spring boot 无法生成数据库表。日志文件:应用程序.properties 文件:spring.datasource.url= jdbc:mysql://localhost:3306/banque_dbspring.datasource.username= rootspring.datasource.password=spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driverspring.jpa.hibernate.ddl-auto= updatespring.jpa.show-sql= truespring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect客户端实体类: @Entity(name="client")public class Client implements Serializable {private static final long serialVersionUID = 1L;@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long code;private String name;private String email;@OneToMany(mappedBy = "compte")private Collection<Compte> comptes;// + getters and setterspom.xml<?xml version="1.0" encoding="UTF-8"?>http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.0.RELEASE com.Tuto<artifactId>MaBanque</artifactId><version>0.0.1-SNAPSHOT</version><name>MaBanque</name><description>Demo project for Spring Boot</description><properties>    <java.version>1.8</java.version></properties><dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-data-jpa</artifactId>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-thymeleaf</artifactId>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>    </dependency>           <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <scope>runtime</scope>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-test</artifactId>        <scope>test</scope>    </dependency>       </dependencies>
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

实际上,问题是实体类不在正确的包中。包含主类和 org.entities 的 org.example 由于某种原因 spring boot 没有生成表,所以当我移动实体包使其变得像 org.example.entities 并运行应用程序时,所有的表都成功生成了。谢谢你们的帮助我很感激:)



查看完整回答
反对 回复 2022-12-15
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您必须设置spring.jpa.hibernate.ddl-auto = create数据库创建或create-drop

有关详细信息,请参阅文档。


查看完整回答
反对 回复 2022-12-15
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

第一个问题:application.properties文件:

  1. 如果您设置 attribute spring.jpa.hibernate.ddl-auto = update,它不会为您创建模式。相反,您知道,它将更新您当前没有的现有数据库。

  2. 默认spring.jpa.hibernate.ddl-auto 是create-drop,但您正在覆盖它。

  3. 你的 application.properties必须

源代码/主要/资源

文件夹。

==> 你应该修复:

spring.jpa.hibernate.ddl-auto = 创建 - 删除

第二个问题:实体类。您应该在属性之上添加@Column ,如下所示:

`@Entity(name="client")

public class Client implements Serializable {

private static final long serialVersionUID = 1L;

@Id

@Column

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long code;

@Column

private String name;

@Column

private String email;

@OneToMany(mappedBy = "compte")

private Collection<Compte> comptes;

// + getters and setters`


查看完整回答
反对 回复 2022-12-15
  • 3 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信