springboot:整合Spring Data JPA操作数据时报错:[PersistenceUnit: default] Unable to build Hibernate SessionFact

 1.像出现以下错误:(截取了部分)

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-04-16 15:15:54.764 ERROR 11612 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; neste

 (1)一般的错误是以下三种:

                  <1>:实体类的属性对象没有设置setter或者getter。(通俗的说就是没有在项目中引入lombok插件,实体类中没有添加Data注解等)

                  <2>:没有导入javassist的jar文件 (javassist-3.15.0-GA.jar什么的)(这个方法对我来说没什么用,不用添加也能实现)

                  <3>:实体类中的属性对象名和映射文件的property name不一致。(这个一般也没什么用,检查检查就行了

(2)我的错误是:在全局配置文件中jpa的一点属性配置错了(因为我在数据库中没有建表,所以想利用jpa来操作,自动生成表,这个参数是错误的,我最后改成了  update):如下图

 这是成功在数据库中建立了我想要的表:

 项目也启动成功了:

(3)这是jpa配置过程中   ddl-auto:   四种不同的属性的一些知识点:

jpa配置中ddl-auto: 一般有四个选项:
(1) create:表示每次加载hibernate的时候,都会删除上一次生成的表,然后再根据你的modle类生成一个表

 (2)create-drop:每次加载hibernate的时候,根据你的modle类生成一个表,当sessionFactory关闭的时候,表就自动删除 
(3)update:hibernate根据你的modle类创建表结构,如果该表没有,则会创建,如果存在就进行根新表结构,并不会删除表里面以前存在的数据 
(4)validate:每次加载hibernate的时候,都会验证表结构是否和modle类的定义一致,如不不一致,就会抛出异常,不会做出修改数据库的动作

 (4)在自动生成表后,为了后面再次启动项目而防止报一些库表的错,我们还得将   update    改为     validate    (因为它比较安全)

2.随手记

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值