return new DefaultPagerImpl<T>(pageNumber, numberOfResults, pageSize, results);\r
}
+ @Transactional(readOnly = true)
+ public List<T> listByTitle(Class<? extends T> clazz, String queryString,MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+ Integer numberOfResults = dao.countByTitle(clazz, queryString, matchmode, criteria);
+
+ List<T> results = new ArrayList<T>();
+ if(numberOfResults > 0) { // no point checking again
+ results = dao.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ }
+ return results;
+ }
+
+ @Transactional(readOnly = true)
+ public List<T> listByReferenceTitle(Class<? extends T> clazz, String queryString,MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+ Integer numberOfResults = dao.countByTitle(clazz, queryString, matchmode, criteria);
+
+ List<T> results = new ArrayList<T>();
+ if(numberOfResults > 0) { // no point checking again
+ results = dao.findByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
+ }
+ return results;
+ }
+
@Transactional(readOnly = true)
public T find(LSID lsid) {
return dao.find(lsid);
}
}
entity.setCacheStrategy(entityCacheStrategy);
- //entity.setTitleCache(null);
- setOtherCachesNull(entity); //TODO find better solution
+ //TODO this won't work for those classes that always generate the title cache new
String titleCache = entity.getTitleCache();
+ setOtherCachesNull(entity); //TODO find better solution
String newTitleCache = entityCacheStrategy.getTitleCache(entity);
- if (titleCache != null && ! titleCache.equals(newTitleCache)){
+ if (titleCache == null || titleCache != null && ! titleCache.equals(newTitleCache)){
+ entity.setTitleCache(null, false);
entity.getTitleCache();
entitiesToUpdate.add(entity);
}
}
}
- saveOrUpdateAll(list);
+ saveOrUpdate(entitiesToUpdate);
+
}
}