Revision 9dc896c9
Added by Andreas Müller almost 7 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TaxonNameDaoHibernateImpl.java | ||
---|---|---|
41 | 41 |
import eu.etaxonomy.cdm.model.name.NameRelationshipType; |
42 | 42 |
import eu.etaxonomy.cdm.model.name.Rank; |
43 | 43 |
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus; |
44 |
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
|
|
44 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
|
45 | 45 |
import eu.etaxonomy.cdm.model.name.TypeDesignationBase; |
46 | 46 |
import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase; |
47 | 47 |
import eu.etaxonomy.cdm.model.taxon.TaxonBase; |
... | ... | |
60 | 60 |
*/ |
61 | 61 |
@Repository |
62 | 62 |
@Qualifier("taxonNameDaoHibernateImpl") |
63 |
public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonNameBase> implements ITaxonNameDao {
|
|
63 |
public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonName> implements ITaxonNameDao { |
|
64 | 64 |
|
65 | 65 |
private static final Logger logger = Logger.getLogger(TaxonNameDaoHibernateImpl.class); |
66 | 66 |
|
... | ... | |
72 | 72 |
private IHomotypicalGroupDao homotypicalGroupDao; |
73 | 73 |
|
74 | 74 |
public TaxonNameDaoHibernateImpl() { |
75 |
super(TaxonNameBase.class);
|
|
75 |
super(TaxonName.class); |
|
76 | 76 |
indexedClasses = new Class[1]; |
77 |
indexedClasses[0] = TaxonNameBase.class;
|
|
77 |
indexedClasses[0] = TaxonName.class; |
|
78 | 78 |
} |
79 | 79 |
|
80 | 80 |
@Override |
... | ... | |
106 | 106 |
@Override |
107 | 107 |
public int countNames(String queryString) { |
108 | 108 |
checkNotInPriorView("TaxonNameDaoHibernateImpl.countNames(String queryString)"); |
109 |
Criteria criteria = getSession().createCriteria(TaxonNameBase.class);
|
|
109 |
Criteria criteria = getSession().createCriteria(TaxonName.class); |
|
110 | 110 |
|
111 | 111 |
if (queryString != null) { |
112 | 112 |
criteria.add(Restrictions.ilike("nameCache", queryString)); |
... | ... | |
139 | 139 |
public int countNames(String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank) { |
140 | 140 |
AuditEvent auditEvent = getAuditEventFromContext(); |
141 | 141 |
if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) { |
142 |
Criteria criteria = getSession().createCriteria(TaxonNameBase.class);
|
|
142 |
Criteria criteria = getSession().createCriteria(TaxonName.class); |
|
143 | 143 |
|
144 | 144 |
/** |
145 | 145 |
* Given HHH-2951 - "Restrictions.eq when passed null, should create a NullRestriction" |
... | ... | |
176 | 176 |
criteria.setProjection(Projections.rowCount()); |
177 | 177 |
return ((Number)criteria.uniqueResult()).intValue(); |
178 | 178 |
} else { |
179 |
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(TaxonNameBase.class,auditEvent.getRevisionNumber());
|
|
179 |
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(TaxonName.class,auditEvent.getRevisionNumber()); |
|
180 | 180 |
|
181 | 181 |
if(genusOrUninomial != null) { |
182 | 182 |
query.add(AuditEntity.property("genusOrUninomial").eq(genusOrUninomial)); |
... | ... | |
212 | 212 |
} |
213 | 213 |
|
214 | 214 |
@Override |
215 |
public int countNameRelationships(TaxonNameBase name, NameRelationship.Direction direction, NameRelationshipType type) {
|
|
215 |
public int countNameRelationships(TaxonName name, NameRelationship.Direction direction, NameRelationshipType type) { |
|
216 | 216 |
|
217 | 217 |
AuditEvent auditEvent = getAuditEventFromContext(); |
218 | 218 |
if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) { |
... | ... | |
240 | 240 |
|
241 | 241 |
|
242 | 242 |
@Override |
243 |
public int countTypeDesignations(TaxonNameBase name, SpecimenTypeDesignationStatus status) {
|
|
244 |
checkNotInPriorView("countTypeDesignations(TaxonNameBase name, SpecimenTypeDesignationStatus status)");
|
|
243 |
public int countTypeDesignations(TaxonName name, SpecimenTypeDesignationStatus status) { |
|
244 |
checkNotInPriorView("countTypeDesignations(TaxonName name, SpecimenTypeDesignationStatus status)"); |
|
245 | 245 |
Query query = null; |
246 | 246 |
if(status == null) { |
247 | 247 |
query = getSession().createQuery("select count(designation) from TypeDesignationBase designation join designation.typifiedNames name where name = :name"); |
... | ... | |
301 | 301 |
} |
302 | 302 |
|
303 | 303 |
@Override |
304 |
public List<NameRelationship> getNameRelationships(TaxonNameBase name, NameRelationship.Direction direction,
|
|
304 |
public List<NameRelationship> getNameRelationships(TaxonName name, NameRelationship.Direction direction, |
|
305 | 305 |
NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, |
306 | 306 |
List<String> propertyPaths) { |
307 | 307 |
|
... | ... | |
352 | 352 |
} |
353 | 353 |
|
354 | 354 |
@Override |
355 |
public List<TypeDesignationBase> getTypeDesignations(TaxonNameBase name, TypeDesignationStatusBase status, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
|
|
355 |
public List<TypeDesignationBase> getTypeDesignations(TaxonName name, TypeDesignationStatusBase status, Integer pageSize, Integer pageNumber, List<String> propertyPaths){ |
|
356 | 356 |
return getTypeDesignations(name, null, status, pageSize, pageNumber, propertyPaths); |
357 | 357 |
} |
358 | 358 |
|
359 | 359 |
@Override |
360 |
public <T extends TypeDesignationBase> List<T> getTypeDesignations(TaxonNameBase name,
|
|
360 |
public <T extends TypeDesignationBase> List<T> getTypeDesignations(TaxonName name, |
|
361 | 361 |
Class<T> type, |
362 | 362 |
TypeDesignationStatusBase status, Integer pageSize, Integer pageNumber, |
363 | 363 |
List<String> propertyPaths){ |
364 |
checkNotInPriorView("getTypeDesignations(TaxonNameBase name,TypeDesignationStatusBase status, Integer pageSize, Integer pageNumber, List<String> propertyPaths)");
|
|
364 |
checkNotInPriorView("getTypeDesignations(TaxonName name,TypeDesignationStatusBase status, Integer pageSize, Integer pageNumber, List<String> propertyPaths)"); |
|
365 | 365 |
Query query = null; |
366 | 366 |
String queryString = "select designation from TypeDesignationBase designation join designation.typifiedNames name where name = :name"; |
367 | 367 |
|
... | ... | |
395 | 395 |
} |
396 | 396 |
|
397 | 397 |
|
398 |
public List<TaxonNameBase<?,?>> searchNames(String queryString, MatchMode matchMode, Integer pageSize, Integer pageNumber) {
|
|
398 |
public List<TaxonName<?,?>> searchNames(String queryString, MatchMode matchMode, Integer pageSize, Integer pageNumber) { |
|
399 | 399 |
checkNotInPriorView("TaxonNameDaoHibernateImpl.searchNames(String queryString, Integer pageSize, Integer pageNumber)"); |
400 |
Criteria criteria = getSession().createCriteria(TaxonNameBase.class);
|
|
400 |
Criteria criteria = getSession().createCriteria(TaxonName.class); |
|
401 | 401 |
|
402 | 402 |
if (queryString != null) { |
403 | 403 |
criteria.add(Restrictions.ilike("nameCache", queryString)); |
... | ... | |
410 | 410 |
criteria.setFirstResult(0); |
411 | 411 |
} |
412 | 412 |
} |
413 |
List<TaxonNameBase<?,?>> results = criteria.list();
|
|
413 |
List<TaxonName<?,?>> results = criteria.list(); |
|
414 | 414 |
return results; |
415 | 415 |
} |
416 | 416 |
|
417 | 417 |
|
418 | 418 |
@Override |
419 |
public List<TaxonNameBase<?,?>> searchNames(String queryString, Integer pageSize, Integer pageNumber) {
|
|
419 |
public List<TaxonName<?,?>> searchNames(String queryString, Integer pageSize, Integer pageNumber) { |
|
420 | 420 |
return searchNames(queryString, MatchMode.BEGINNING, pageSize, pageNumber); |
421 | 421 |
} |
422 | 422 |
|
423 | 423 |
|
424 | 424 |
@Override |
425 |
public List<TaxonNameBase> searchNames(String genusOrUninomial,String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank, Integer pageSize,Integer pageNumber, List<OrderHint> orderHints,
|
|
425 |
public List<TaxonName> searchNames(String genusOrUninomial,String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank, Integer pageSize,Integer pageNumber, List<OrderHint> orderHints, |
|
426 | 426 |
List<String> propertyPaths) { |
427 | 427 |
AuditEvent auditEvent = getAuditEventFromContext(); |
428 | 428 |
if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) { |
429 |
Criteria criteria = getSession().createCriteria(TaxonNameBase.class);
|
|
429 |
Criteria criteria = getSession().createCriteria(TaxonName.class); |
|
430 | 430 |
|
431 | 431 |
/** |
432 | 432 |
* Given HHH-2951 - "Restrictions.eq when passed null, should create a NullRestriction" |
... | ... | |
471 | 471 |
|
472 | 472 |
addOrder(criteria, orderHints); |
473 | 473 |
|
474 |
List<TaxonNameBase> results = criteria.list();
|
|
474 |
List<TaxonName> results = criteria.list(); |
|
475 | 475 |
defaultBeanInitializer.initializeAll(results, propertyPaths); |
476 | 476 |
return results; |
477 | 477 |
} else { |
478 |
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(TaxonNameBase.class,auditEvent.getRevisionNumber());
|
|
478 |
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(TaxonName.class,auditEvent.getRevisionNumber()); |
|
479 | 479 |
|
480 | 480 |
if(genusOrUninomial != null) { |
481 | 481 |
query.add(AuditEntity.property("genusOrUninomial").eq(genusOrUninomial)); |
... | ... | |
514 | 514 |
} |
515 | 515 |
} |
516 | 516 |
|
517 |
List<TaxonNameBase> results = query.getResultList();
|
|
517 |
List<TaxonName> results = query.getResultList(); |
|
518 | 518 |
defaultBeanInitializer.initializeAll(results, propertyPaths); |
519 | 519 |
return results; |
520 | 520 |
} |
521 | 521 |
} |
522 | 522 |
|
523 | 523 |
@Override |
524 |
public List<? extends TaxonNameBase<?,?>> findByName(boolean doIncludeAuthors,
|
|
524 |
public List<? extends TaxonName<?,?>> findByName(boolean doIncludeAuthors, |
|
525 | 525 |
String queryString, MatchMode matchmode, Integer pageSize, |
526 | 526 |
Integer pageNumber, List<Criterion> criteria, List<String> propertyPaths) { |
527 | 527 |
|
... | ... | |
564 | 564 |
} |
565 | 565 |
|
566 | 566 |
@SuppressWarnings("unchecked") |
567 |
List<? extends TaxonNameBase<?,?>> results = crit.list();
|
|
567 |
List<? extends TaxonName<?,?>> results = crit.list(); |
|
568 | 568 |
defaultBeanInitializer.initializeAll(results, propertyPaths); |
569 | 569 |
|
570 | 570 |
return results; |
571 | 571 |
} |
572 | 572 |
|
573 | 573 |
@Override |
574 |
public List<? extends TaxonNameBase<?,?>> findByTitle(String queryString,
|
|
574 |
public List<? extends TaxonName<?,?>> findByTitle(String queryString, |
|
575 | 575 |
MatchMode matchmode, Integer pageSize, Integer pageNumber, List<Criterion> criteria, List<String> propertyPaths) { |
576 | 576 |
|
577 | 577 |
Criteria crit = getSession().createCriteria(type); |
... | ... | |
594 | 594 |
} |
595 | 595 |
} |
596 | 596 |
|
597 |
List<? extends TaxonNameBase<?,?>> results = crit.list();
|
|
597 |
List<? extends TaxonName<?,?>> results = crit.list(); |
|
598 | 598 |
defaultBeanInitializer.initializeAll(results, propertyPaths); |
599 | 599 |
|
600 | 600 |
return results; |
... | ... | |
602 | 602 |
|
603 | 603 |
|
604 | 604 |
@Override |
605 |
public TaxonNameBase<?,?> findByUuid(UUID uuid, List<Criterion> criteria, List<String> propertyPaths) {
|
|
605 |
public TaxonName findByUuid(UUID uuid, List<Criterion> criteria, List<String> propertyPaths) { |
|
606 | 606 |
|
607 | 607 |
Criteria crit = getSession().createCriteria(type); |
608 | 608 |
|
... | ... | |
619 | 619 |
} |
620 | 620 |
crit.addOrder(Order.asc("uuid")); |
621 | 621 |
|
622 |
List<? extends TaxonNameBase<?,?>> results = crit.list();
|
|
622 |
List<? extends TaxonName<?,?>> results = crit.list(); |
|
623 | 623 |
if (results.size() == 1) { |
624 | 624 |
defaultBeanInitializer.initializeAll(results, propertyPaths); |
625 |
TaxonNameBase<?, ?> taxonName = results.iterator().next();
|
|
625 |
TaxonName<?, ?> taxonName = results.iterator().next(); |
|
626 | 626 |
return taxonName; |
627 | 627 |
} else if (results.size() > 1) { |
628 | 628 |
logger.error("Multiple results for UUID: " + uuid); |
... | ... | |
701 | 701 |
public Integer countByName(String queryString, MatchMode matchmode, List<Criterion> criteria) { |
702 | 702 |
//TODO improve performance |
703 | 703 |
boolean includeAuthors = false; |
704 |
List<? extends TaxonNameBase<?,?>> results = findByName(
|
|
704 |
List<? extends TaxonName<?,?>> results = findByName( |
|
705 | 705 |
includeAuthors,queryString, matchmode, null, null, criteria, null); |
706 | 706 |
return results.size(); |
707 | 707 |
|
... | ... | |
709 | 709 |
|
710 | 710 |
@Override |
711 | 711 |
public List<UuidAndTitleCache> getUuidAndTitleCacheOfNames(Integer limit, String pattern) { |
712 |
String queryString = "SELECT uuid, id, fullTitleCache FROM TaxonNameBase LIMIT " + limit;
|
|
712 |
String queryString = "SELECT uuid, id, fullTitleCache FROM TaxonName LIMIT " + limit; |
|
713 | 713 |
|
714 | 714 |
@SuppressWarnings("unchecked") |
715 | 715 |
List<Object[]> result = getSession().createSQLQuery(queryString).list(); |
... | ... | |
735 | 735 |
} |
736 | 736 |
|
737 | 737 |
@Override |
738 |
public long countByName(Class<? extends TaxonNameBase> clazz,String queryString, MatchMode matchmode, List<Criterion> criteria) {
|
|
738 |
public long countByName(Class<? extends TaxonName> clazz,String queryString, MatchMode matchmode, List<Criterion> criteria) { |
|
739 | 739 |
return super.countByParam(clazz, "nameCache", queryString, matchmode, criteria); |
740 | 740 |
} |
741 | 741 |
|
742 | 742 |
@Override |
743 |
public List<TaxonNameBase> findByName(Class<? extends TaxonNameBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria,Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
|
|
743 |
public List<TaxonName> findByName(Class<? extends TaxonName> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria,Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
|
|
744 | 744 |
return super.findByParam(clazz, "nameCache", queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths); |
745 | 745 |
} |
746 | 746 |
|
747 | 747 |
@Override |
748 |
public UUID delete (TaxonNameBase persistentObject){
|
|
748 |
public UUID delete (TaxonName persistentObject){ |
|
749 | 749 |
Set<TaxonBase> taxonBases = persistentObject.getTaxonBases(); |
750 | 750 |
|
751 | 751 |
if (persistentObject == null){ |
... | ... | |
791 | 791 |
} |
792 | 792 |
|
793 | 793 |
@SuppressWarnings("unchecked") |
794 |
List<? extends TaxonNameBase<?,?>> results = criteria.list();
|
|
794 |
List<? extends TaxonName<?,?>> results = criteria.list(); |
|
795 | 795 |
if (results.size() == 1) { |
796 | 796 |
defaultBeanInitializer.initializeAll(results, null); |
797 |
TaxonNameBase<?, ?> taxonName = results.iterator().next();
|
|
797 |
TaxonName<?, ?> taxonName = results.iterator().next(); |
|
798 | 798 |
if (taxonName.isZoological()) { |
799 | 799 |
IZoologicalName zoologicalName = taxonName; |
800 | 800 |
return zoologicalName; |
... | ... | |
814 | 814 |
String sql= "SELECT" |
815 | 815 |
+ " (SELECT famName.namecache FROM TaxonNode famNode" |
816 | 816 |
+ " LEFT OUTER JOIN TaxonBase famTax ON famNode.taxon_id = famTax.id" |
817 |
+ " LEFT OUTER JOIN TaxonNameBase famName ON famTax.name_id = famName.id"
|
|
817 |
+ " LEFT OUTER JOIN TaxonName famName ON famTax.name_id = famName.id" |
|
818 | 818 |
+ " WHERE famName.rank_id = 795 AND famNode.treeIndex = SUBSTRING(tn.treeIndex, 1, length(famNode.treeIndex))" |
819 | 819 |
+ " ) as famName, " |
820 | 820 |
+ " (SELECT famName.namecache FROM TaxonNode famNode " |
821 | 821 |
+ " LEFT OUTER JOIN TaxonBase famTax ON famNode.taxon_id = famTax.id " |
822 |
+ " LEFT OUTER JOIN TaxonNameBase famName ON famTax.name_id = famName.id "
|
|
822 |
+ " LEFT OUTER JOIN TaxonName famName ON famTax.name_id = famName.id " |
|
823 | 823 |
+ " WHERE famName.rank_id = 795 AND famNode.treeIndex = SUBSTRING(tnAcc.treeIndex, 1, length(famNode.treeIndex))" |
824 | 824 |
+ " ) as accFamName,tb.DTYPE, tb.id as TaxonID ,tb.titleCache taxonTitle, tnb.rank_id as RankID, tnb.id as NameID," |
825 | 825 |
+ " tnb.namecache as name, tnb.titleCache as nameAuthor, tnb.fullTitleCache nameAndNomRef," |
826 | 826 |
+ " r.titleCache as nomRef, r.abbrevTitle nomRefAbbrevTitle, r.title nomRefTitle, r.datepublished_start nomRefPublishedStart, r.datepublished_end nomRefPublishedEnd, r.pages nomRefPages, inRef.abbrevTitle inRefAbbrevTitle,tnb.nomenclaturalmicroreference as detail," |
827 | 827 |
+ " nameType.namecache nameType, nameType.titleCache nameTypeAuthor, nameType.fullTitleCache nameTypeFullTitle, nameTypeRef.titleCache nameTypeRef, inRef.seriespart as inRefSeries, inRef.datepublished_start inRefPublishedStart, inRef.datepublished_end inRefPublishedEnd, inRef.volume as inRefVolume" |
828 | 828 |
+ " FROM TaxonBase tb" |
829 |
+ " LEFT OUTER JOIN TaxonNameBase tnb ON tb.name_id = tnb.id"
|
|
829 |
+ " LEFT OUTER JOIN TaxonName tnb ON tb.name_id = tnb.id" |
|
830 | 830 |
+ " LEFT OUTER JOIN Reference r ON tnb.nomenclaturalreference_id = r.id" |
831 | 831 |
+ " LEFT OUTER JOIN TaxonNode tn ON tn.taxon_id = tb.id" |
832 |
+ " LEFT OUTER JOIN TaxonNameBase_TypeDesignationBase typeMN ON typeMN.TaxonNameBase_id = tnb.id"
|
|
832 |
+ " LEFT OUTER JOIN TaxonName_TypeDesignationBase typeMN ON typeMN.TaxonName_id = tnb.id"
|
|
833 | 833 |
+ " LEFT OUTER JOIN TypeDesignationBase tdb ON tdb.id = typeMN.typedesignations_id" |
834 |
+ " LEFT OUTER JOIN TaxonNameBase nameType ON tdb.typename_id = nameType.id"
|
|
834 |
+ " LEFT OUTER JOIN TaxonName nameType ON tdb.typename_id = nameType.id" |
|
835 | 835 |
+ " LEFT OUTER JOIN Reference nameTypeRef ON nameType.nomenclaturalreference_id = nameTypeRef.id" |
836 | 836 |
+ " LEFT OUTER JOIN Reference inRef ON inRef.id = r.inreference_id" |
837 | 837 |
+ " LEFT OUTER JOIN TaxonBase accT ON accT.id = tb.acceptedTaxon_id" |
Also available in: Unified diff
fix #6368 rename table and class TaxonNameBase