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.随手记
本文介绍了在Spring Boot应用中遇到的JPA配置问题,导致无法启动应用。错误原因是`ddl-auto`属性配置错误,原本设置为不正确的值,导致数据库表未自动生成。通过调整为`update`,成功在数据库中创建了所需表结构,从而启动项目。同时,解释了`ddl-auto`的四种不同属性含义,并建议在项目稳定后将其改为`validate`以确保安全。

597

被折叠的 条评论
为什么被折叠?



