X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/1f4786383c3ac4967a3e6cd0435d8af372b084fd..45546a913cf144912d383d54758aa51c81367ec9:/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBase.java diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBase.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBase.java index c17355c738..de1dd9fb4e 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBase.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBase.java @@ -56,7 +56,7 @@ import eu.etaxonomy.cdm.strategy.merge.IMergable; import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy; import eu.etaxonomy.cdm.strategy.merge.MergeException; -public abstract class IdentifiableServiceBase> extends AnnotatableServiceBase +public abstract class IdentifiableServiceBase> extends AnnotatableServiceBase implements IIdentifiableEntityService{ @@ -139,19 +139,19 @@ public abstract class IdentifiableServiceBase> getUuidAndTitleCache() { return dao.getUuidAndTitleCache(); - } + } - @Transactional(readOnly = true) + @Transactional(readOnly = true) @Override - public Pager findByTitle(Class clazz, String queryString,MatchMode matchmode, List criteria, Integer pageSize, Integer pageNumber, List orderHints, List propertyPaths) { - Integer numberOfResults = dao.countByTitle(clazz, queryString, matchmode, criteria); - - List results = new ArrayList(); - if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize) - results = dao.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths); - } - - return new DefaultPagerImpl(pageNumber, numberOfResults, pageSize, results); + public Pager findByTitle(Class clazz, String queryString,MatchMode matchmode, List criteria, Integer pageSize, Integer pageNumber, List orderHints, List propertyPaths) { + Integer numberOfResults = dao.countByTitle(clazz, queryString, matchmode, criteria); + + List results = new ArrayList(); + if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize) + results = dao.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths); + } + + return new DefaultPagerImpl(pageNumber, numberOfResults, pageSize, results); } @Transactional(readOnly = true) @@ -306,11 +306,12 @@ public abstract class IdentifiableServiceBase cacheStrategy, List entitiesToUpdate, T entity) { - assert (entity.isProtectedTitleCache() == false ); + //assert (entity.isProtectedTitleCache() == false ); //exclude recursive inreferences if (entity.isInstanceOf(Reference.class)){ @@ -330,14 +331,15 @@ public abstract class IdentifiableServiceBase)entity).getType()).getCacheStrategy(); } } - entity.setCacheStrategy(entityCacheStrategy); + //old titleCache entity.setProtectedTitleCache(true); + String oldTitleCache = entity.getTitleCache(); entity.setTitleCache(oldTitleCache, false); //before we had entity.setProtectedTitleCache(false) but this deleted the titleCache itself - + entity.setCacheStrategy(entityCacheStrategy); //NonViralNames and Reference have more caches //TODO handle in NameService String oldNameCache = null; String oldFullTitleCache = null; @@ -387,6 +389,7 @@ public abstract class IdentifiableServiceBase