我使用Spring Data JPA在MySQL中创建表,但是创建失败

Posted

技术标签:

【中文标题】我使用Spring Data JPA在MySQL中创建表,但是创建失败【英文标题】:I used Spring Data JPA to create a table in MySQL, but the creation failed 【发布时间】:2019-08-23 07:53:38 【问题描述】:

我使用 Spring Data JPA 在 mysql 中创建表,但是创建失败。在我的实体类中找不到错误,我认为配置没有错。

我修改了属性中的一些jdbc连接语句,以及实体类上的注解,但是没有用。

@Data
@Entity
@Table
public class User 
    @Id
    @Column(nullable = false)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private String id;

    @Column(unique = true)
    private String userName;

    @Column
    private String password;


属性文件如下:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/blog?characterEncoding=utf8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root 
spring.datasource.password=localhost # Spring Data Jpa 
spring.jpa.hibernate.ddl-auto=create 
spring.jpa.show-sql=true

【问题讨论】:

控制台是否有任何错误或异常?你能提供连接细节吗? # MySQL spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/blog?characterEncoding=utf8&useSSL =false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=localhost # Spring Data Jpa spring.jpa.hibernate.ddl-auto=create spring.jpa.show-sql=true 这是我的属性文件 varchar 如何自动递增?我建议您将其更改为例如integer @SudhirOjha 破折号分隔的属性对于 Spring Boot 是正确的,是骆驼大小写变体的替代方案。 【参考方案1】:

作为最佳实践,id 应始终为 Long 类型。请更改它,它应该可以工作。

【讨论】:

【参考方案2】:

我不知道 String 是如何自动递增的,最好改为 Longint。 p>

【讨论】:

以上是关于我使用Spring Data JPA在MySQL中创建表,但是创建失败的主要内容,如果未能解决你的问题,请参考以下文章

Spring-Boot,无法使用 spring-data JPA 在 MySql 中保存 unicode 字符串

Spring Boot + Spring Data JPA + 事务无法正常工作

Spring Boot 2.x基础教程:使用Spring Data JPA访问MySQL

如何在 Spring data jpa 中正确使用 findBySomeOtherId 而不是 findById?

使用 Spring Data JPA 在 Spring Boot 2 应用程序中发布数据

Spring Boot2 系列教程 | 使用 Spring Data JPA 访问 Mysql