试图通过弹簧default_batch_fetch_size
配置休眠application.yml
。
AFAIK设置与将@BatchSize(size = xxx)
批注放在所有实体关系上具有相同的效果。
我启用了spring.jpa.properties.hibernate.generate_statistics: true
并进行了相应记录并尝试设置
spring:
jpa:
properties:
hibernate:
jdbc:
batch_size: 100
default_batch_fetch_size: 30
我也尝试过
spring:
jpa:
hibernate:
ddl-auto: none
default_batch_fetch_size: 30
但是该配置属性似乎根本不存在。
结果日志显示,休眠状态不会获取批处理的集合,而是N + 1(未指定FetchMode-因此使用了默认的@Fetch(FetchMode.SELECT)
-我不想更改它)。
答案 0 :(得分:1)
结果我混合了放置property-config的位置。正确的路径是这样的:
spring:
jpa:
properties:
hibernate:
default_batch_fetch_size: 30
jdbc:
batch_size: 100