Committing large number of changes relating to versioning implementation (#108)
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / persistence / dao / hibernate / common / LsidAuthorityDaoImpl.java
1 package eu.etaxonomy.cdm.persistence.dao.hibernate.common;
2
3 import org.hibernate.Query;
4 import org.springframework.stereotype.Repository;
5
6 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
7 import eu.etaxonomy.cdm.model.common.LSID;
8 import eu.etaxonomy.cdm.model.common.LSIDAuthority;
9 import eu.etaxonomy.cdm.persistence.dao.common.ILsidAuthorityDao;
10
11 @Repository
12 public class LsidAuthorityDaoImpl extends CdmEntityDaoBase<LSIDAuthority> implements
13 ILsidAuthorityDao {
14
15 public LsidAuthorityDaoImpl() {
16 super(LSIDAuthority.class);
17 }
18
19 public Class<? extends IIdentifiableEntity> getClassForNamespace(LSID lsid) {
20 Query query = getSession().createQuery("select clazz from LSIDAuthority authority join authority.namespaces clazz where authority.authority = :authority and index(clazz) = :namespace");
21 query.setParameter("authority",lsid.getAuthority());
22 query.setParameter("namespace", lsid.getNamespace());
23 return (Class<? extends IIdentifiableEntity>)query.uniqueResult();
24 }
25 }