Project

General

Profile

Download (2.91 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2014 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.persistence.dao.hibernate.molecular;
10

    
11
import java.util.ArrayList;
12
import java.util.List;
13
import java.util.UUID;
14

    
15
import org.apache.log4j.Logger;
16
import org.hibernate.Query;
17
import org.hibernate.Session;
18
import org.hibernate.criterion.Criterion;
19
import org.springframework.stereotype.Repository;
20

    
21
import eu.etaxonomy.cdm.model.molecular.Amplification;
22
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.AnnotatableDaoImpl;
23
import eu.etaxonomy.cdm.persistence.dao.molecular.IAmplificationDao;
24
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
25
import eu.etaxonomy.cdm.persistence.query.MatchMode;
26
import eu.etaxonomy.cdm.persistence.query.OrderHint;
27

    
28
/**
29
 * @author pplitzner
30
 * @date 11.03.2014
31
 *
32
 */
33
@Repository
34
public class AmplificationDaoHibernateImpl extends AnnotatableDaoImpl<Amplification> implements IAmplificationDao{
35

    
36
    @SuppressWarnings("unused")
37
    private static final Logger logger = Logger.getLogger(AmplificationDaoHibernateImpl.class);
38

    
39
    /**
40
     * @param type
41
     */
42
    public AmplificationDaoHibernateImpl() {
43
        super(Amplification.class);
44
    }
45

    
46
    @Override
47
    public List<UuidAndTitleCache<Amplification>> getAmplificationUuidAndLabelCache(Integer limit, String pattern) {
48
        List<UuidAndTitleCache<Amplification>> list = new ArrayList<UuidAndTitleCache<Amplification>>();
49
        Session session = getSession();
50
        Query query;
51
        if (pattern != null){
52
            query = session.createQuery("select uuid, id, labelCache from Amplification where labelCache like :pattern");
53
            query.setParameter("pattern", pattern);
54
        }else{
55
            query = session.createQuery("select uuid, id, labelCache from Amplification");
56
        }
57
        if (limit != null){
58
            query.setMaxResults(limit);
59
         }
60
        @SuppressWarnings("unchecked")
61
        List<Object[]> result = query.list();
62

    
63
        for(Object[] object : result){
64
            list.add(new UuidAndTitleCache<Amplification>(Amplification.class, (UUID) object[0], (Integer)object[1], (String) object[2]));
65
        }
66

    
67
        return list;
68
    }
69

    
70
    @Override
71
    public long countByTitle(String queryString, MatchMode matchmode, List<Criterion> criteria) {
72
        return countByParam(Amplification.class, "labelCache", queryString, matchmode, criteria);
73
    }
74

    
75
    @Override
76
    public List<Amplification> findByTitle(String queryString, MatchMode matchmode, List<Criterion> criteria,
77
            Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
78
        return findByParam(Amplification.class, "labelCache", queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
79
    }
80
}
(1-1/4)