我使用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 是如何自动递增的,最好改为 Long 或 int。 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?