springboot使用jpa无法创建数据库表的问题
springboot使用jpa无法创建数据库表的问题
这两天在B站跟一个up学习开发一个个人博客网站,在使用jpa通过@Entity + @Table自动创建数据库表的时候处出了问题。
先看看实体类代码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bRQJLOTG-1578242649091)(C:\Users\小马林\AppData\Roaming\Typora\typora-user-images\image-20200106001606029.png)]
注意要想springboot能够成功创建表条件如下
- 实体类必须在主程序类所在的包结构的下一级子包下
- 实体类必须用@Entitu注解标识,注意@Entity必须是javax.persistence.*该包下的注解
- 在配置文件下配置jpa.hibernate.ddl-auto: update
上面是基本的要求,必须满足。
现在来看看我的配置类,我使用的yml文件进行配置
从这里你可以看出创建表的基本要求都是做到了,可是我启动程序后数据库还是空空如也。
创建表失败的原因是因为我犯了一个很低级的错误,这也是我认为yml所存在的缺点之一。
jpa是spring属性下的子属性,而我在上面的配置写法,就把jpa写成datasource的子属性
改过来后就是这样的
你会发现update的颜色变了,重新运行程序
发现控制台打印了创建数据库表的日志
打开数据库发现对应的表也创建成功
把这个分享给大家,希望大家开发过程中多细心,尽量少踩坑。当然可也使用properties文件进行配置。properties配置文件中父属性与子属性直接通过 ‘ . ’ 进行连结,就会出现上面我所遇到的问题了。
如果你不是遇到了跟我一样的问题,那你要仔细观察你的代码。是否满足自动见表的3个基本要求。
最后祝大家好运。