懒加载失效:参考
常用注解 :参考
封装JPA基本功能 :参考
hibernate N+1问题:参考
使用spring boot 整合 spring data jpa
maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--hibernate懒加载处理-->
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate5</artifactId>
<version>2.9.9</version>
</dependency>
<!--如果是其它数据库更换-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
<scope>runtime</scope>
</dependency>
application配置文件
一般的话修改方言,database即可
jpa:
database: MYSQL
#在启动时初始化架构
generate-ddl: true
#注册OpenEntityManagerInViewInterceptor拦截器
open-in-view: true
#hibernate 配置参考 https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#configurations
hibernate:
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL8Dialect
current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
#在给定的事务持久性上下文之外初始化懒加载
enable_lazy_load_no_trans: true
#降低高度并发中事务死锁的可能性
order_inserts: true
order_updates: true
jdbc:
#批量处理 50条新增一次(create,update,delete)
batch_size: 50
#版本化实体是否应包含在批处理中
batch_versioned_data: true
#使用@Transient注解操作异常问题解决
event:
merge:
entity_copy_observer: allow
显示sql语句添加
jpa:
show-sql: true
properties:
hibernate:
#格式化sql
format_sql: true
#Hibernate会在SQL中生成注释便于调试
use_sql_comments: true
配置完成