/**
*
*/
package org.inbio.m3s.dao.atta.impl;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.inbio.m3s.dao.GenericBaseDAOImpl;
import org.inbio.m3s.dao.core.InstitutionDAO;
import org.inbio.m3s.model.atta.INBioInstitution;
import org.inbio.m3s.model.general.Institution;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
/**
* @author jgutierrez
*
*/
public class INBioInstitutionDAOImpl extends GenericBaseDAOImpl<Institution, Integer> implements InstitutionDAO {
/*
* (non-Javadoc)
* @see org.inbio.m3s.dao.core.InstitutionDAO#findByName(java.lang.String)
*/
public Institution findByName(final String institutionName) {
//logger.debug("getting ALL Institutions Info in lite version...");
HibernateTemplate template = getHibernateTemplate();
return (Institution) template.execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery(
"select i"
+ " from INBioInstitution as i "
+ " where i.name = '"+ institutionName +"'");
//query.setParameter(0, nomenclaturalGroupId);
query.setCacheable(true);
return query.uniqueResult();
}
});
}
/*
* (non-Javadoc)
* @see org.inbio.m3s.dao.core.InstitutionDAO#findAllByPartialNamePaginated(java.lang.String, int)
*/
@SuppressWarnings("unchecked")
public List<Institution> findAllByPartialNamePaginated(final String partialName, final int maxResults) {
logger.debug("findAllByPartialNamePaginated for institution name: '" + partialName + "'.");
HibernateTemplate template = getHibernateTemplate();
return (List<Institution>) template.execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery(
"select i"
+ " from INBioInstitution as i "
+ " where i.name like :institutionName");
query.setParameter("institutionName", partialName);
query.setFirstResult(0);
query.setMaxResults(maxResults);
query.setCacheable(true);
return query.list();
}
});
}
/*
* (non-Javadoc)
* @see org.inbio.m3s.dao.impl.BaseDAOImpl#create(java.lang.Object)
*/
@Override
public void create(Institution institution) throws IllegalArgumentException {
super.create((INBioInstitution) institution);
}
/*
* (non-Javadoc)
*
* @see org.inbio.m3s.dao.BaseDAO#delete(java.lang.Object)
*/
@Override
public void update(Institution institution) throws IllegalArgumentException {
super.update((INBioInstitution) institution);
}
/*
* (non-Javadoc)
*
* @see org.inbio.m3s.dao.BaseDAO#update(java.lang.Object)
*/
@Override
public void delete(Institution institution) throws IllegalArgumentException {
super.delete((INBioInstitution) institution);
}
/*
* (non-Javadoc)
* @see org.inbio.m3s.dao.BaseDAO#findById(java.lang.Class, java.lang.Object)
*/
@Override
public Institution findById(Class<Institution> entityClass, Integer id) throws IllegalArgumentException {
HibernateTemplate template = getHibernateTemplate();
return (Institution) template.get(INBioInstitution.class, id);
}
/*
* (non-Javadoc)
* @see org.inbio.m3s.dao.BaseDAO#findAll(java.lang.Class)
*/
@SuppressWarnings("unchecked")
@Override
public List<Institution> findAll(Class<Institution> entityClass) throws IllegalArgumentException {
//return super.findAll(INBioInstitution.class);
HibernateTemplate template = getHibernateTemplate();
return template.loadAll(INBioInstitution.class);
}
}