Java Spring启动休眠表不存在
我正在用MySQL数据库创建一个Spring启动应用程序。 我已经创建了一个实体用户(当我启动应用程序时,通常有一个名为User的表?) 我还有一个用户存储库Java Spring启动休眠表不存在,java,mysql,spring,spring-boot,hibernate,Java,Mysql,Spring,Spring Boot,Hibernate,我正在用MySQL数据库创建一个Spring启动应用程序。 我已经创建了一个实体用户(当我启动应用程序时,通常有一个名为User的表?) 我还有一个用户存储库 import org.springframework.data.repository.CrudRepository; public interface UserRepository extends CrudRepository<User, Integer>{ } 尝试从数据库获取数据时出错: java.sql.SQLS
import org.springframework.data.repository.CrudRepository;
public interface UserRepository extends CrudRepository<User, Integer>{
}
尝试从数据库获取数据时出错:
java.sql.SQLSyntaxErrorException:表“cashManager21.User”不存在
有人能帮我解决这个错误吗?有两种方法可以解决这个问题:——(哈哈,我只知道这两种,可能还有更多) 1st:-- 手动创建数据库(cashManager21)。 在mysql命令提示符中执行以下语句
CREATE DATABASE cashManager21;
第二--
更改数据库url,如下所示
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/cashManager21?createDatabaseIfNotExist=true
在类级别上用@Table注释实体类:--
我总是选择第二种方法
概述:(供参考)
数据库和表名在Windows中不区分大小写,在大多数Unix中都区分大小写。
User
是MySQL中的保留关键字。您需要使用其他表名或在hibernate中为表名启用转义字符。或者将注释@table(name=“\”user\”)添加到实体中。也许看看Bootify.io,你可以用实体初始化基本的Spring Boot应用程序。这可能只是一个输入错误?->春天。jba。。。应该是spring.jpa…事实上,我做了你的第二个答案,但它不起作用,我仍然有这个问题,但CashManager21.user不存在。。。我的数据库已经存在,但是我的表没有添加@table吗?在你的实体中,你可以在这里发布完整的日志跟踪吗?你在用docker吗?
CREATE DATABASE cashManager21;
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/cashManager21?createDatabaseIfNotExist=true
@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---
}