spring boot hibernate表不存在

jmo0nnb3  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(360)

我正在用mysql数据库创建一个spring启动应用程序。我已经创建了一个实体用户(当我启动应用程序时,通常有一个名为user的表?)

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

@Entity
public class User {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)

    private Integer id;
    private String prenom;
    private String nom;

    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getPrenom() {
        return prenom;
    }
    public void setPrenom(String prenom) {
        this.prenom = prenom;
    }
    public String getNom() {
        return nom;
    }
    public void setNom(String nom) {
        this.nom = nom;
    }

}

我还有一个用户存储库

import org.springframework.data.repository.CrudRepository;

public interface UserRepository extends CrudRepository<User, Integer>{

}

以及application.properties

spring.jba.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/cashManager21
spring.datasource.username=springuser
spring.datasource.password=ThePassword

尝试从数据库获取数据时出错:java.sql.sqlsyntaxerrorexception:表“cashmanager21.user”不存在
有人能帮我解决这个错误吗?

bnlyeluc

bnlyeluc1#

有两种方法可以解决这个问题issue:--(哈哈我只知道这两个,可能还有更多)
第一名:--
手动创建数据库(cashmanager21)。在mysql命令提示符下执行下面的语句。

CREATE DATABASE cashManager21;

第二个--将数据库url更改为下面的一个

spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/cashManager21?createDatabaseIfNotExist=true

用@table on class注解实体类level:--

@Entity
@Table(name="user")
public class User {       // in log if you see it is searching for (User) not "user" table thats why it is throwing table not found.

blah---
}

我总是选择第二种方法。
概述:(仅供参考)
数据库和表名在windows中不区分大小写,在大多数unix中也不区分大小写。

相关问题