【发布时间】:2020-11-26 11:10:39
【问题描述】:
我正在使用 MySQL 数据库创建一个 Spring Boot 应用程序。 我创建了一个实体用户(通常在我启动应用程序时有一个名为用户的表?)
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;
}
}
我还有一个 UserRepository
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' 不存在
谁能帮我解决这个错误?
【问题讨论】:
-
User是 MySQL 中的保留关键字。您需要使用不同的表名或在休眠中为表名启用转义字符。 -
或将注解@Table(name = "\"user\"") 添加到您的实体。也许看看 Bootify.io,你可以用实体初始化基本的 Spring Boot 应用程序。
-
这可能只是一个错字? -> spring.jba ...应该是spring.jpa ...
标签: java mysql spring spring-boot hibernate