提交 5cb99a45 编写于 作者: MaxKey单点登录官方's avatar MaxKey单点登录官方

2.6

上级 dfca3329
......@@ -19,20 +19,19 @@ package org.apache.mybatis.jpa.persistence;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.time.Duration;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import org.apache.mybatis.jpa.PageResultsSqlCache;
import org.apache.mybatis.jpa.util.BeanUtil;
import org.apache.mybatis.jpa.util.InstanceUtil;
import org.apache.mybatis.jpa.util.StringUtils;
import org.apache.mybatis.jpa.util.WebContext;
import org.ehcache.UserManagedCache;
import org.ehcache.config.builders.ExpiryPolicyBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;
import org.ehcache.config.builders.UserManagedCacheBuilder;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
/**
......@@ -46,12 +45,10 @@ public class JpaBaseService <T extends JpaBaseEntity> {
@JsonIgnore
//定义全局缓存
public static UserManagedCache<String, PageResultsSqlCache> pageResultsBoundSqlCache = UserManagedCacheBuilder
.newUserManagedCacheBuilder(String.class, PageResultsSqlCache.class)
.withResourcePools(ResourcePoolsBuilder.heap(1000))
//.withExpiry(ExpiryPolicyBuilder.timeToIdleExpiration(Duration.ofSeconds(300)))
.withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(300)))
.build(true);
public static final Cache<String, PageResultsSqlCache> pageResultsBoundSqlCache =
Caffeine.newBuilder()
.expireAfterWrite(300, TimeUnit.SECONDS)
.build();
/**
* mapper class
*/
......
......@@ -133,7 +133,7 @@ public class SqlProviderQuery <T extends JpaBaseEntity>{
public String executePageResultsCount(T entity) {
JpaPagination pagination=(JpaPagination)entity;
//获取缓存数据
PageResultsSqlCache pageResultsSqlCache=JpaBaseService.pageResultsBoundSqlCache.get(pagination.getPageResultSelectUUID());
PageResultsSqlCache pageResultsSqlCache=JpaBaseService.pageResultsBoundSqlCache.getIfPresent(pagination.getPageResultSelectUUID());
//多个空格 tab 替换成1个空格
String selectSql=pageResultsSqlCache.getSql().replaceAll("\r\n+", " \n").replaceAll("\n+", " \n").replaceAll("\t", " ").replaceAll(" +"," ");
BoundSql boundSql=(BoundSql)pageResultsSqlCache.getBoundSql();
......@@ -175,7 +175,7 @@ public class SqlProviderQuery <T extends JpaBaseEntity>{
}
}
//删除缓存
JpaBaseService.pageResultsBoundSqlCache.remove(pagination.getPageResultSelectUUID());
JpaBaseService.pageResultsBoundSqlCache.invalidate(pagination.getPageResultSelectUUID());
_logger.trace("Count SQL : \n" + sql);
return sql.toString();
}
......
......@@ -15,7 +15,7 @@
</modules>
<properties>
<mybatis.jpa.extra.version>2.5</mybatis.jpa.extra.version><!--project version-->
<mybatis.jpa.extra.version>2.6</mybatis.jpa.extra.version><!--project version-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jdk.version>1.8</jdk.version>
<spring.version>5.2.0.RELEASE</spring.version>
......@@ -243,9 +243,9 @@
<version>11.2.0.3</version> <scope>system</scope> <systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath>
</dependency> -->
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.5.2</version>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册