Revision 42d4306a
Added by Katja Luther over 6 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/AnnotatableDaoImpl.java | ||
---|---|---|
9 | 9 |
|
10 | 10 |
package eu.etaxonomy.cdm.persistence.dao.hibernate.common; |
11 | 11 |
|
12 |
import java.util.ArrayList; |
|
12 | 13 |
import java.util.List; |
14 |
import java.util.UUID; |
|
13 | 15 |
|
14 | 16 |
import org.apache.log4j.Logger; |
15 | 17 |
import org.hibernate.Query; |
18 |
import org.hibernate.Session; |
|
16 | 19 |
|
17 | 20 |
import eu.etaxonomy.cdm.model.common.AnnotatableEntity; |
18 | 21 |
import eu.etaxonomy.cdm.model.common.Annotation; |
22 |
import eu.etaxonomy.cdm.model.common.IAnnotatableEntity; |
|
19 | 23 |
import eu.etaxonomy.cdm.model.common.Marker; |
20 | 24 |
import eu.etaxonomy.cdm.model.common.MarkerType; |
21 | 25 |
import eu.etaxonomy.cdm.persistence.dao.common.IAnnotatableDao; |
26 |
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; |
|
22 | 27 |
import eu.etaxonomy.cdm.persistence.query.OrderHint; |
23 | 28 |
import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder; |
24 | 29 |
|
... | ... | |
227 | 232 |
return result; |
228 | 233 |
} |
229 | 234 |
|
235 |
@Override |
|
236 |
public List<UuidAndTitleCache<T>> getUuidAndTitleCache(Integer limit, String pattern){ |
|
237 |
return getUuidAndTitleCache(type, limit, pattern); |
|
238 |
} |
|
239 |
|
|
240 |
|
|
241 |
@Override |
|
242 |
public <S extends T> List<UuidAndTitleCache<S>> getUuidAndTitleCache(Class<S> clazz, Integer limit, String pattern){ |
|
243 |
Session session = getSession(); |
|
244 |
Query query = null; |
|
245 |
if (pattern != null){ |
|
246 |
query = session.createQuery("select uuid, id, titleCache from " + clazz.getSimpleName() +" where titleCache like :pattern"); |
|
247 |
pattern = pattern.replace("*", "%"); |
|
248 |
pattern = pattern.replace("?", "_"); |
|
249 |
pattern = pattern + "%"; |
|
250 |
query.setParameter("pattern", pattern); |
|
251 |
} else { |
|
252 |
query = session.createQuery("select uuid, id, titleCache from " + clazz.getSimpleName() ); |
|
253 |
} |
|
254 |
if (limit != null){ |
|
255 |
query.setMaxResults(limit); |
|
256 |
} |
|
257 |
return getUuidAndTitleCache(query); |
|
258 |
} |
|
259 |
|
|
260 |
|
|
261 |
@Override |
|
262 |
public List<UuidAndTitleCache<T>> getUuidAndTitleCache(){ |
|
263 |
return getUuidAndTitleCache(type, null, null); |
|
264 |
} |
|
265 |
|
|
266 |
protected <E extends IAnnotatableEntity> List<UuidAndTitleCache<E>> getUuidAndAbbrevTitleCache(Query query){ |
|
267 |
List<UuidAndTitleCache<E>> list = new ArrayList<UuidAndTitleCache<E>>(); |
|
268 |
|
|
269 |
List<Object[]> result = query.list(); |
|
270 |
|
|
271 |
for(Object[] object : result){ |
|
272 |
list.add(new UuidAndTitleCache<E>((UUID) object[0],(Integer) object[1], (String) object[3], (String) object[2])); |
|
273 |
} |
|
274 |
return list; |
|
275 |
} |
|
276 |
|
|
277 |
protected <E extends IAnnotatableEntity> List<UuidAndTitleCache<E>> getUuidAndTitleCache(Query query){ |
|
278 |
List<UuidAndTitleCache<E>> list = new ArrayList<UuidAndTitleCache<E>>(); |
|
279 |
|
|
280 |
List<Object[]> result = query.list(); |
|
281 |
|
|
282 |
for(Object[] object : result){ |
|
283 |
list.add(new UuidAndTitleCache<E>((UUID) object[0],(Integer) object[1], (String) object[2])); |
|
284 |
} |
|
285 |
return list; |
|
286 |
} |
|
287 |
|
|
230 | 288 |
} |
Also available in: Unified diff
adapt uuidAndTitleCache services and dao methods to search for a pattern