Project

General

Profile

« Previous | Next » 

Revision 4b96de2c

Added by Katja Luther over 2 years ago

ref #9680: adapt searches to search also for collector title cache

View differences:

cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/agent/AgentDaoImpl.java
31 31
import eu.etaxonomy.cdm.model.agent.InstitutionalMembership;
32 32
import eu.etaxonomy.cdm.model.agent.Person;
33 33
import eu.etaxonomy.cdm.model.agent.Team;
34
import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
34 35
import eu.etaxonomy.cdm.model.view.AuditEvent;
35 36
import eu.etaxonomy.cdm.persistence.dao.agent.IAgentDao;
36 37
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase;
38
import eu.etaxonomy.cdm.persistence.dto.TeamOrPersonUuidAndTitleCache;
37 39
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
38 40
import eu.etaxonomy.cdm.persistence.query.MatchMode;
39 41
import eu.etaxonomy.cdm.persistence.query.OrderHint;
......
189 191
            whereClause += " OR titleCache LIKE :pattern";
190 192
            whereClause += " OR collectorTitleCache like :pattern";
191 193

  
192
            query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache " + clazzString  + whereClause);
194
            query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache, collectorTitleCache " + clazzString  + whereClause);
193 195
            pattern = pattern + "%";
194 196
            pattern = pattern.replace("*", "%");
195 197
            pattern = pattern.replace("?", "_");
196 198
            query.setParameter("pattern", pattern);
197 199
        } else {
198
            query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache " + clazzString);
200
            query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache, collectorTitleCache " + clazzString);
199 201
        }
200 202
        if (limit != null){
201 203
            query.setMaxResults(limit);
......
220 222
                whereClause += " OR collectorTitleCache LIKE :pattern";
221 223
            }
222 224

  
223
            query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache " + clazzString  + whereClause);
225
            query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache, collectorTitleCache " + clazzString  + whereClause);
224 226
            pattern = pattern + "%";
225 227
            pattern = pattern.replace("*", "%");
226 228
            pattern = pattern.replace("?", "_");
227 229
            query.setParameter("pattern", pattern);
228 230
        } else {
229
            query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache " + clazzString);
231
            query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache, collectorTitleCache " + clazzString);
230 232
        }
231 233
        if (limit != null){
232 234
            query.setMaxResults(limit);
......
244 246

  
245 247
	    return findByParam(clazz, params, queryString, matchmode, criterion, pageSize, pageNumber, orderHints, propertyPaths);
246 248
    }
249

  
250
	@Override
251
    protected <E extends IAnnotatableEntity> List<UuidAndTitleCache<E>> getUuidAndAbbrevTitleCache(Query query){
252
        List<UuidAndTitleCache<E>> list = new ArrayList<>();
253

  
254
        List<Object[]> result = query.list();
255

  
256
        for(Object[] object : result){
257
            list.add(new TeamOrPersonUuidAndTitleCache<E>((UUID) object[0],(Integer) object[1], (String) object[3], (String) object[2], (String) object[3]));
258
        }
259
        return list;
260
    }
261

  
262
	@Override
263
    protected <E extends IAnnotatableEntity> List<UuidAndTitleCache<E>> getUuidAndTitleCache(Query query){
264
        List<UuidAndTitleCache<E>> list = new ArrayList<>();
265

  
266

  
267
        List<Object> result = query.list();
268

  
269
        for(Object obj : result){
270
          Object[] object = (Object[])obj;
271
          list.add(new TeamOrPersonUuidAndTitleCache((UUID) object[0],(Integer) object[1], (String) object[2], (String) object[3], (String) object[4]));
272

  
273
        }
274
        return list;
275
    }
247 276
}

Also available in: Unified diff