refactor(vendor): 重构服务类继承EntityService基类
将多个vendor相关的服务类重构为继承自EntityService基类,统一实现通用CRUD操作 移除重复代码,简化各服务类的实现 添加必要的重写方法如getRepository和createNewEntity
This commit is contained in:
@@ -1,19 +1,13 @@
|
|||||||
package com.ecep.contract.ds.vendor.repository;
|
package com.ecep.contract.ds.vendor.repository;
|
||||||
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
|
||||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import com.ecep.contract.ds.MyRepository;
|
||||||
import com.ecep.contract.model.VendorApproved;
|
import com.ecep.contract.model.VendorApproved;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合格供方名录
|
* 合格供方名录
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface VendorApprovedRepository extends
|
public interface VendorApprovedRepository extends MyRepository<VendorApproved, Integer> {
|
||||||
JpaRepository<VendorApproved, Integer>, JpaSpecificationExecutor<VendorApproved>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ecep.contract.ds.vendor.service;
|
package com.ecep.contract.ds.vendor.service;
|
||||||
|
|
||||||
import com.ecep.contract.IEntityService;
|
import com.ecep.contract.IEntityService;
|
||||||
|
import com.ecep.contract.EntityService;
|
||||||
import com.ecep.contract.QueryService;
|
import com.ecep.contract.QueryService;
|
||||||
import com.ecep.contract.SpringApp;
|
import com.ecep.contract.SpringApp;
|
||||||
import com.ecep.contract.constant.ParamConstant;
|
import com.ecep.contract.constant.ParamConstant;
|
||||||
@@ -26,12 +27,22 @@ import java.util.List;
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Service
|
@Service
|
||||||
@CacheConfig(cacheNames = "vendor-approved-file")
|
@CacheConfig(cacheNames = "vendor-approved-file")
|
||||||
public class VendorApprovedFileService
|
public class VendorApprovedFileService extends EntityService<VendorApprovedFile, VendorApprovedFileVo, Integer>
|
||||||
implements IEntityService<VendorApprovedFile>, QueryService<VendorApprovedFileVo>, VoableService<VendorApprovedFile, VendorApprovedFileVo> {
|
implements IEntityService<VendorApprovedFile>, QueryService<VendorApprovedFileVo>, VoableService<VendorApprovedFile, VendorApprovedFileVo> {
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private VendorApprovedFileRepository repository;
|
private VendorApprovedFileRepository repository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected VendorApprovedFileRepository getRepository() {
|
||||||
|
return repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VendorApprovedFile createNewEntity() {
|
||||||
|
return new VendorApprovedFile();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据ID查找供应商已批准文件
|
* 根据ID查找供应商已批准文件
|
||||||
*
|
*
|
||||||
@@ -44,41 +55,29 @@ public class VendorApprovedFileService
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<VendorApprovedFileVo> findAll(JsonNode paramsNode, Pageable pageable) {
|
protected org.springframework.data.jpa.domain.Specification<VendorApprovedFile> buildSearchSpecification(String searchText) {
|
||||||
Specification<VendorApprovedFile> spec = null;
|
return (root, query, builder) -> {
|
||||||
if (paramsNode.has(ParamConstant.KEY_SEARCH_TEXT)) {
|
return builder.or(
|
||||||
spec = getSearchSpecification(paramsNode.get(ParamConstant.KEY_SEARCH_TEXT).asText());
|
builder.like(root.get("fileName"), "%" + searchText + "%"),
|
||||||
}
|
builder.like(root.get("description"), "%" + searchText + "%"));
|
||||||
spec = SpecificationUtils.andParam(spec, paramsNode, "list");
|
};
|
||||||
return findAll(spec, pageable).map(VendorApprovedFile::toVo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long count(JsonNode paramsNode) {
|
protected org.springframework.data.jpa.domain.Specification<VendorApprovedFile> buildParameterSpecification(JsonNode paramsNode) {
|
||||||
return repository.count();
|
org.springframework.data.jpa.domain.Specification<VendorApprovedFile> spec = null;
|
||||||
|
spec = SpecificationUtils.andParam(spec, paramsNode, "list");
|
||||||
|
spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "fileName", "description");
|
||||||
|
return spec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VendorApprovedFile getById(Integer id) {
|
public VendorApprovedFile getById(Integer id) {
|
||||||
return repository.findById(id).orElse(null);
|
return repository.findById(id).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取供应商已批准文件的查询规格
|
|
||||||
* 根据搜索文本构建文件名和描述的模糊查询条件
|
|
||||||
*
|
|
||||||
* @param searchText 搜索文本
|
|
||||||
* @return 构建的查询规格
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public Specification<VendorApprovedFile> getSearchSpecification(String searchText) {
|
|
||||||
return (root, query, builder) -> {
|
|
||||||
return builder.or(
|
|
||||||
builder.like(root.get("fileName"), "%" + searchText + "%"),
|
|
||||||
builder.like(root.get("description"), "%" + searchText + "%"));
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据查询规格和分页参数获取供应商已批准文件列表
|
* 根据查询规格和分页参数获取供应商已批准文件列表
|
||||||
@@ -159,4 +158,4 @@ public class VendorApprovedFileService
|
|||||||
entity.setList(null);
|
entity.setList(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import com.ecep.contract.IEntityService;
|
import com.ecep.contract.IEntityService;
|
||||||
|
import com.ecep.contract.EntityService;
|
||||||
import com.ecep.contract.MyDateTimeUtils;
|
import com.ecep.contract.MyDateTimeUtils;
|
||||||
import com.ecep.contract.QueryService;
|
import com.ecep.contract.QueryService;
|
||||||
import com.ecep.contract.constant.CompanyVendorConstant;
|
import com.ecep.contract.constant.CompanyVendorConstant;
|
||||||
@@ -40,7 +41,8 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Service
|
@Service
|
||||||
public class VendorApprovedService implements IEntityService<VendorApproved>, QueryService<VendorApprovedVo>,
|
public class VendorApprovedService extends EntityService<VendorApproved, VendorApprovedVo, Integer>
|
||||||
|
implements IEntityService<VendorApproved>, QueryService<VendorApprovedVo>,
|
||||||
VoableService<VendorApproved, VendorApprovedVo> {
|
VoableService<VendorApproved, VendorApprovedVo> {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(VendorApprovedService.class);
|
private static final Logger logger = LoggerFactory.getLogger(VendorApprovedService.class);
|
||||||
@Lazy
|
@Lazy
|
||||||
@@ -57,6 +59,16 @@ public class VendorApprovedService implements IEntityService<VendorApproved>, Qu
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SysConfService confService;
|
private SysConfService confService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected VendorApprovedRepository getRepository() {
|
||||||
|
return repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VendorApproved createNewEntity() {
|
||||||
|
return new VendorApproved();
|
||||||
|
}
|
||||||
|
|
||||||
public File getBasePath() {
|
public File getBasePath() {
|
||||||
return new File(confService.getString(CompanyVendorConstant.KEY_APPROVED_LIST_BASE_PATH));
|
return new File(confService.getString(CompanyVendorConstant.KEY_APPROVED_LIST_BASE_PATH));
|
||||||
}
|
}
|
||||||
@@ -72,26 +84,15 @@ public class VendorApprovedService implements IEntityService<VendorApproved>, Qu
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<VendorApproved> findAll(Specification<VendorApproved> spec, Pageable pageable) {
|
protected org.springframework.data.jpa.domain.Specification<VendorApproved> buildParameterSpecification(
|
||||||
return repository.findAll(spec, pageable);
|
JsonNode paramsNode) {
|
||||||
}
|
org.springframework.data.jpa.domain.Specification<VendorApproved> spec = null;
|
||||||
|
|
||||||
@Override
|
|
||||||
public Page<VendorApprovedVo> findAll(JsonNode paramsNode, Pageable pageable) {
|
|
||||||
Specification<VendorApproved> spec = null;
|
|
||||||
if (paramsNode.has(ParamConstant.KEY_SEARCH_TEXT)) {
|
|
||||||
spec = getSearchSpecification(paramsNode.get(ParamConstant.KEY_SEARCH_TEXT).asText());
|
|
||||||
}
|
|
||||||
// 添加额外的参数过滤
|
|
||||||
spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "title");
|
spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "title");
|
||||||
return findAll(spec, pageable).map(VendorApproved::toVo);
|
return spec;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Specification<VendorApproved> getSearchSpecification(String searchText) {
|
protected Specification<VendorApproved> buildSearchSpecification(String searchText) {
|
||||||
if (!StringUtils.hasText(searchText)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return (root, query, builder) -> {
|
return (root, query, builder) -> {
|
||||||
return builder.like(root.get("title"), "%" + searchText + "%");
|
return builder.like(root.get("title"), "%" + searchText + "%");
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import com.ecep.contract.IEntityService;
|
import com.ecep.contract.IEntityService;
|
||||||
|
import com.ecep.contract.EntityService;
|
||||||
import com.ecep.contract.QueryService;
|
import com.ecep.contract.QueryService;
|
||||||
import com.ecep.contract.ds.vendor.repository.VendorClassRepository;
|
import com.ecep.contract.ds.vendor.repository.VendorClassRepository;
|
||||||
import com.ecep.contract.model.VendorCatalog;
|
import com.ecep.contract.model.VendorCatalog;
|
||||||
@@ -30,12 +31,23 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Service
|
@Service
|
||||||
@CacheConfig(cacheNames = "vendor-catalog")
|
@CacheConfig(cacheNames = "vendor-catalog")
|
||||||
public class VendorCatalogService implements IEntityService<VendorCatalog>, QueryService<VendorCatalogVo>,
|
public class VendorCatalogService extends EntityService<VendorCatalog, VendorCatalogVo, Integer>
|
||||||
|
implements IEntityService<VendorCatalog>, QueryService<VendorCatalogVo>,
|
||||||
VoableService<VendorCatalog, VendorCatalogVo> {
|
VoableService<VendorCatalog, VendorCatalogVo> {
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private VendorClassRepository repository;
|
private VendorClassRepository repository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected VendorClassRepository getRepository() {
|
||||||
|
return repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VendorCatalog createNewEntity() {
|
||||||
|
return new VendorCatalog();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<VendorCatalogVo> findAll(JsonNode paramsNode, Pageable pageable) {
|
public Page<VendorCatalogVo> findAll(JsonNode paramsNode, Pageable pageable) {
|
||||||
Specification<VendorCatalog> spec = null;
|
Specification<VendorCatalog> spec = null;
|
||||||
@@ -65,10 +77,15 @@ public class VendorCatalogService implements IEntityService<VendorCatalog>, Quer
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Specification<VendorCatalog> getSearchSpecification(String searchText) {
|
protected org.springframework.data.jpa.domain.Specification<VendorCatalog> buildParameterSpecification(
|
||||||
if (!StringUtils.hasText(searchText)) {
|
JsonNode paramsNode) {
|
||||||
return null;
|
org.springframework.data.jpa.domain.Specification<VendorCatalog> spec = null;
|
||||||
}
|
spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "name", "code", "parentId");
|
||||||
|
return spec;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Specification<VendorCatalog> buildSearchSpecification(String searchText) {
|
||||||
return (root, query, builder) -> {
|
return (root, query, builder) -> {
|
||||||
return builder.or(
|
return builder.or(
|
||||||
builder.like(root.get("name"), "%" + searchText + "%"),
|
builder.like(root.get("name"), "%" + searchText + "%"),
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import com.ecep.contract.IEntityService;
|
import com.ecep.contract.IEntityService;
|
||||||
|
import com.ecep.contract.EntityService;
|
||||||
import com.ecep.contract.QueryService;
|
import com.ecep.contract.QueryService;
|
||||||
import com.ecep.contract.SpringApp;
|
import com.ecep.contract.SpringApp;
|
||||||
import com.ecep.contract.ds.other.service.EmployeeService;
|
import com.ecep.contract.ds.other.service.EmployeeService;
|
||||||
@@ -29,12 +30,22 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Service
|
@Service
|
||||||
@CacheConfig(cacheNames = "company-vendor-entity")
|
@CacheConfig(cacheNames = "company-vendor-entity")
|
||||||
public class VendorEntityService implements IEntityService<VendorEntity>, QueryService<VendorEntityVo>,
|
public class VendorEntityService extends EntityService<VendorEntity, VendorEntityVo, Integer> implements IEntityService<VendorEntity>, QueryService<VendorEntityVo>,
|
||||||
VoableService<VendorEntity, VendorEntityVo> {
|
VoableService<VendorEntity, VendorEntityVo> {
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private VendorEntityRepository repository;
|
private VendorEntityRepository repository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected VendorEntityRepository getRepository() {
|
||||||
|
return repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VendorEntity createNewEntity() {
|
||||||
|
return new VendorEntity();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VendorEntity getById(Integer id) {
|
public VendorEntity getById(Integer id) {
|
||||||
return repository.findById(id).orElse(null);
|
return repository.findById(id).orElse(null);
|
||||||
@@ -74,6 +85,14 @@ public class VendorEntityService implements IEntityService<VendorEntity>, QueryS
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected org.springframework.data.jpa.domain.Specification<VendorEntity> buildParameterSpecification(JsonNode paramsNode) {
|
||||||
|
org.springframework.data.jpa.domain.Specification<VendorEntity> spec = null;
|
||||||
|
spec = SpecificationUtils.andParam(spec, paramsNode, "vendor");
|
||||||
|
spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "name", "abbName", "code");
|
||||||
|
return spec;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<VendorEntity> search(String searchText) {
|
public List<VendorEntity> search(String searchText) {
|
||||||
Specification<VendorEntity> spec = getSearchSpecification(searchText);
|
Specification<VendorEntity> spec = getSearchSpecification(searchText);
|
||||||
@@ -154,4 +173,4 @@ public class VendorEntityService implements IEntityService<VendorEntity>, QueryS
|
|||||||
model.setModifier(employeeService.getById(vo.getModifierId()));
|
model.setModifier(employeeService.getById(vo.getModifierId()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import com.ecep.contract.IEntityService;
|
import com.ecep.contract.IEntityService;
|
||||||
|
import com.ecep.contract.EntityService;
|
||||||
import com.ecep.contract.QueryService;
|
import com.ecep.contract.QueryService;
|
||||||
import com.ecep.contract.VendorType;
|
import com.ecep.contract.VendorType;
|
||||||
import com.ecep.contract.ds.vendor.repository.VendorTypeLocalRepository;
|
import com.ecep.contract.ds.vendor.repository.VendorTypeLocalRepository;
|
||||||
@@ -30,27 +31,44 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Service
|
@Service
|
||||||
@CacheConfig(cacheNames = "vendor-type")
|
@CacheConfig(cacheNames = "vendor-type")
|
||||||
public class VendorTypeService implements IEntityService<VendorTypeLocal>, QueryService<VendorTypeLocalVo>,
|
public class VendorTypeService extends EntityService<VendorTypeLocal, VendorTypeLocalVo, Integer>
|
||||||
|
implements IEntityService<VendorTypeLocal>, QueryService<VendorTypeLocalVo>,
|
||||||
VoableService<VendorTypeLocal, VendorTypeLocalVo> {
|
VoableService<VendorTypeLocal, VendorTypeLocalVo> {
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private VendorTypeLocalRepository repository;
|
private VendorTypeLocalRepository repository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<VendorTypeLocalVo> findAll(JsonNode paramsNode, Pageable pageable) {
|
protected VendorTypeLocalRepository getRepository() {
|
||||||
Specification<VendorTypeLocal> spec = null;
|
return repository;
|
||||||
if (paramsNode.has(ParamConstant.KEY_SEARCH_TEXT)) {
|
}
|
||||||
spec = getSearchSpecification(paramsNode.get(ParamConstant.KEY_SEARCH_TEXT).asText());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VendorTypeLocal createNewEntity() {
|
||||||
|
return new VendorTypeLocal();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Specification<VendorTypeLocal> buildParameterSpecification(JsonNode paramsNode) {
|
||||||
|
Specification<VendorTypeLocal> spec = null;
|
||||||
if (paramsNode.has("type")) {
|
if (paramsNode.has("type")) {
|
||||||
spec = SpecificationUtils.and(spec, (root, query, builder) -> builder.equal(root.get("type"),
|
spec = SpecificationUtils.and(spec, (root, query, builder) -> builder.equal(root.get("type"),
|
||||||
VendorType.valueOf(paramsNode.get("type").asText())));
|
VendorType.valueOf(paramsNode.get("type").asText())));
|
||||||
}
|
}
|
||||||
|
|
||||||
// field
|
// field
|
||||||
spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "lang", "value");
|
spec = SpecificationUtils.andFieldEqualParam(spec, paramsNode, "lang", "value");
|
||||||
return findAll(spec, pageable).map(VendorTypeLocal::toVo);
|
return spec;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Specification<VendorTypeLocal> buildSearchSpecification(String searchText) {
|
||||||
|
return (root, query, builder) -> {
|
||||||
|
return
|
||||||
|
// builder.or(
|
||||||
|
builder.like(root.get("type"), "%" + searchText + "%")
|
||||||
|
// )
|
||||||
|
;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Cacheable(key = "#p0")
|
@Cacheable(key = "#p0")
|
||||||
@@ -64,30 +82,11 @@ public class VendorTypeService implements IEntityService<VendorTypeLocal>, Query
|
|||||||
return repository.findById(id).orElse(null);
|
return repository.findById(id).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Page<VendorTypeLocal> findAll(Specification<VendorTypeLocal> spec, Pageable pageable) {
|
|
||||||
return repository.findAll(spec, pageable);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Cacheable(key = "'all-'+#p0.toLanguageTag()")
|
@Cacheable(key = "'all-'+#p0.toLanguageTag()")
|
||||||
public Map<VendorType, VendorTypeLocal> findAll(Locale locale) {
|
public Map<VendorType, VendorTypeLocal> findAll(Locale locale) {
|
||||||
return repository.getCompleteMapByLocal(locale.toLanguageTag());
|
return repository.getCompleteMapByLocal(locale.toLanguageTag());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Specification<VendorTypeLocal> getSearchSpecification(String searchText) {
|
|
||||||
if (!StringUtils.hasText(searchText)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return (root, query, builder) -> {
|
|
||||||
return
|
|
||||||
// builder.or(
|
|
||||||
builder.like(root.get("type"), "%" + searchText + "%")
|
|
||||||
// )
|
|
||||||
;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
@Caching(evict = {
|
@Caching(evict = {
|
||||||
@CacheEvict(key = "#p0.id"),
|
@CacheEvict(key = "#p0.id"),
|
||||||
@CacheEvict(key = "'all-'+#p0.getLang()")
|
@CacheEvict(key = "'all-'+#p0.getLang()")
|
||||||
|
|||||||
Reference in New Issue
Block a user