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.随手记