springboot使用jpa无法创建数据库表的问题

springboot使用jpa无法创建数据库表的问题

这两天在B站跟一个up学习开发一个个人博客网站,在使用jpa通过@Entity + @Table自动创建数据库表的时候处出了问题。

先看看实体类代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bRQJLOTG-1578242649091)(C:\Users\小马林\AppData\Roaming\Typora\typora-user-images\image-2020010600160602springboot使用jpa无法创建数据库表的问题9.png)]

注意要想springboot能够成功创建表条件如下

  1. 实体类必须在主程序类所在的包结构的下一级子包下
  2. 实体类必须用@Entitu注解标识,注意@Entity必须是javax.persistence.*该包下的注解
  3. 在配置文件下配置jpa.hibernate.ddl-auto: update

上面是基本的要求,必须满足。

现在来看看我的配置类,我使用的yml文件进行配置
springboot使用jpa无法创建数据库表的问题
从这里你可以看出创建表的基本要求都是做到了,可是我启动程序后数据库还是空空如也。

创建表失败的原因是因为我犯了一个很低级的错误,这也是我认为yml所存在的缺点之一。

jpa是spring属性下的子属性,而我在上面的配置写法,就把jpa写成datasource的子属性

改过来后就是这样的

springboot使用jpa无法创建数据库表的问题
你会发现update的颜色变了,重新运行程序

发现控制台打印了创建数据库表的日志
springboot使用jpa无法创建数据库表的问题

打开数据库发现对应的表也创建成功

springboot使用jpa无法创建数据库表的问题
把这个分享给大家,希望大家开发过程中多细心,尽量少踩坑。当然可也使用properties文件进行配置。properties配置文件中父属性与子属性直接通过 ‘ . ’ 进行连结,就会出现上面我所遇到的问题了。

如果你不是遇到了跟我一样的问题,那你要仔细观察你的代码。是否满足自动见表的3个基本要求。

最后祝大家好运。