Revision 1184c8e0
Added by Patrick Plitzner about 5 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/TermVocabularyDaoImpl.java | ||
---|---|---|
20 | 20 |
|
21 | 21 |
import org.hibernate.Criteria; |
22 | 22 |
import org.hibernate.Query; |
23 |
import org.hibernate.Session; |
|
23 | 24 |
import org.hibernate.criterion.Restrictions; |
24 | 25 |
import org.hibernate.envers.query.AuditEntity; |
25 | 26 |
import org.hibernate.envers.query.AuditQuery; |
... | ... | |
34 | 35 |
import eu.etaxonomy.cdm.persistence.dao.common.ITermVocabularyDao; |
35 | 36 |
import eu.etaxonomy.cdm.persistence.dto.TermDto; |
36 | 37 |
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto; |
38 |
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; |
|
37 | 39 |
import eu.etaxonomy.cdm.persistence.query.OrderHint; |
38 | 40 |
|
39 | 41 |
/** |
... | ... | |
294 | 296 |
return new ArrayList<>(dtoMap.values()); |
295 | 297 |
} |
296 | 298 |
|
299 |
@Override |
|
300 |
public <S extends TermVocabulary> List<UuidAndTitleCache<S>> getUuidAndTitleCache(Class<S> clazz, TermType termType, |
|
301 |
Integer limit, String pattern) { |
|
302 |
if(termType==null){ |
|
303 |
return getUuidAndTitleCache(clazz, limit, pattern); |
|
304 |
} |
|
305 |
Session session = getSession(); |
|
306 |
Query query = null; |
|
307 |
if (pattern != null){ |
|
308 |
query = session.createQuery( |
|
309 |
" SELECT uuid, id, titleCache " |
|
310 |
+ " FROM " + clazz.getSimpleName() |
|
311 |
+ " WHERE titleCache LIKE :pattern " |
|
312 |
+ " AND termType = :termType"); |
|
313 |
pattern = pattern.replace("*", "%"); |
|
314 |
pattern = pattern.replace("?", "_"); |
|
315 |
pattern = pattern + "%"; |
|
316 |
query.setParameter("pattern", pattern); |
|
317 |
} else { |
|
318 |
query = session.createQuery( |
|
319 |
" SELECT uuid, id, titleCache " |
|
320 |
+ " FROM " + clazz.getSimpleName() |
|
321 |
+ " WHERE termType = :termType"); |
|
322 |
} |
|
323 |
query.setParameter("termType", termType); |
|
324 |
if (limit != null){ |
|
325 |
query.setMaxResults(limit); |
|
326 |
} |
|
327 |
return getUuidAndTitleCache(query); |
|
328 |
} |
|
329 |
|
|
297 | 330 |
} |
Also available in: Unified diff
ref #7998 Add service method for UuidAndTitleCache by term type