/**
*
*/
package qa.qcri.aidr.manager.repository.impl;
/**
* @author Latika
*
*/
import java.util.Collections;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import qa.qcri.aidr.manager.persistence.entities.UserAccountRole;
import qa.qcri.aidr.manager.repository.UserAccountRoleRepository;
@Repository
public class UserAccountRoleRepositoryImpl extends GenericRepositoryImpl<UserAccountRole, Long> implements UserAccountRoleRepository {
private Logger logger = Logger.getLogger(UserAccountRoleRepositoryImpl.class);
@Override
public List<UserAccountRole> fetchByAccountId(Long userId) {
List<UserAccountRole> roles = Collections.EMPTY_LIST;
try {
Criteria criteria = getHibernateTemplate().getSessionFactory()
.getCurrentSession().createCriteria(UserAccountRole.class);
criteria.add(Restrictions.eq("account.id", userId));
roles = (List<UserAccountRole>) criteria.list();
} catch (Exception e) {
logger.error("Error in fetching roles by userID : " + userId, e);
}
return roles;
}
@Override
public UserAccountRole fetchByUserIdAndRole(Long userId, Long roleId) {
UserAccountRole userRole = null;
try {
Criteria criteria = getHibernateTemplate().getSessionFactory()
.getCurrentSession().createCriteria(UserAccountRole.class);
Criterion criterion = Restrictions.conjunction()
.add(Restrictions.eq("account.id", userId))
.add(Restrictions.eq("role.id", roleId));
criteria.add(criterion);
userRole = (UserAccountRole) criteria.uniqueResult();
} catch(Exception e) {
logger.error("Error in fetching data by userId : " + userId + " and roleId : " + roleId, e);
}
return userRole;
}
}