Revision 440ea14c
Added by Andreas Müller over 2 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/term/DefinedTermDaoImpl.java | ||
---|---|---|
69 | 69 |
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase; |
70 | 70 |
import eu.etaxonomy.cdm.persistence.dao.term.IDefinedTermDao; |
71 | 71 |
import eu.etaxonomy.cdm.persistence.dto.FeatureDto; |
72 |
import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto; |
|
72 | 73 |
import eu.etaxonomy.cdm.persistence.dto.TermDto; |
73 | 74 |
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto; |
74 | 75 |
import eu.etaxonomy.cdm.persistence.query.MatchMode; |
... | ... | |
779 | 780 |
|
780 | 781 |
@Override |
781 | 782 |
public Collection<TermDto> findByTitleAsDtoWithVocDto(String title, TermType termType) { |
782 |
String queryString = TermDto.getTermDtoSelect()
|
|
783 |
String termQueryString = TermDto.getTermDtoSelect()
|
|
783 | 784 |
+ " where a.titleCache like :title " |
784 | 785 |
+ (termType!=null?" and a.termType = :termType ":""); |
785 | 786 |
|
786 | 787 |
title = title.replace("*", "%"); |
787 |
Query query = getSession().createQuery(queryString);
|
|
788 |
query.setParameter("title", "%"+title+"%");
|
|
788 |
Query termQuery = getSession().createQuery(termQueryString);
|
|
789 |
termQuery.setParameter("title", "%"+title+"%");
|
|
789 | 790 |
if(termType!=null){ |
790 |
query.setParameter("termType", termType);
|
|
791 |
termQuery.setParameter("termType", termType);
|
|
791 | 792 |
} |
792 | 793 |
|
793 | 794 |
@SuppressWarnings("unchecked") |
794 |
List<Object[]> result = query.list(); |
|
795 |
List<Object[]> termArrayResult = termQuery.list(); |
|
796 |
List<TermDto> list = TermDto.termDtoListFrom(termArrayResult); |
|
795 | 797 |
|
796 |
List<TermDto> list = TermDto.termDtoListFrom(result);
|
|
797 |
queryString = TermVocabularyDto.getTermCollectionDtoSelect() + " where a.uuid = :uuid";
|
|
798 |
String vocQueryString = TermCollectionDto.getTermCollectionDtoSelect() + " where a.uuid = :uuid";
|
|
799 |
Query vocQuery = getSession().createQuery(vocQueryString);
|
|
798 | 800 |
|
799 |
query = getSession().createQuery(queryString); |
|
800 | 801 |
for (TermDto dto: list){ |
801 |
query.setParameter("uuid", dto.getVocabularyUuid()); |
|
802 |
result = query.list(); |
|
803 |
List<TermVocabularyDto> vocs = TermVocabularyDto.termVocabularyDtoListFrom(result); |
|
802 |
vocQuery.setParameter("uuid", dto.getVocabularyUuid()); |
|
803 |
@SuppressWarnings("unchecked") |
|
804 |
List<Object[]> vocArrayResult = vocQuery.list(); |
|
805 |
List<TermVocabularyDto> vocs = TermVocabularyDto.termVocabularyDtoListFrom(vocArrayResult); |
|
804 | 806 |
if (!vocs.isEmpty()){ |
805 | 807 |
dto.setVocabularyDto(vocs.get(0)); |
806 | 808 |
} |
Also available in: Unified diff
cleanup