Java 为什么持久性上下文的大小会影响Hibernate中的查询时间 for(int i=0;i

Java 为什么持久性上下文的大小会影响Hibernate中的查询时间 for(int i=0;i,java,hibernate,jpa,Java,Hibernate,Jpa,目前,对于loadBarById(0)方法,此代码需要200毫秒。如果我取消注释注释注释的行,它需要PersistenceContext(Hibernate会话)是所有类型的值和代理的缓存。如果事务处于活动状态,回滚信息也存储在某个位置。清除持久性管理器/会话可以加快缓存的工作速度 您需要注意单个会话中加载的对象数量,否则会出现性能问题 for(int i = 0; i < 10000; i++) { Foo foo = dao.loadFooById(i); } //dao.getE

目前,对于
loadBarById(0)
方法,此代码需要200毫秒。如果我取消注释注释注释的行,它需要PersistenceContext(Hibernate会话)是所有类型的值和代理的缓存。如果事务处于活动状态,回滚信息也存储在某个位置。清除持久性管理器/会话可以加快缓存的工作速度

您需要注意单个会话中加载的对象数量,否则会出现性能问题

for(int i = 0; i < 10000; i++) {
  Foo foo = dao.loadFooById(i);
}
//dao.getEntityManager().clear();
Bar bar = dao.loadBarById(0);