package org.atricore.idbus.connectors.jdoidentityvault.domain.dao.impl;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.atricore.idbus.connectors.jdoidentityvault.domain.JDOSecurityQuestion;
import org.atricore.idbus.connectors.jdoidentityvault.domain.dao.JDOSecurityQuestionDAO;
import org.springframework.dao.IncorrectResultSizeDataAccessException;
import javax.jdo.PersistenceManager;
import javax.jdo.Query;
import java.util.Collection;
/**
* @author: sgonzalez@atriocore.com
* @date: 4/10/13
*/
public class JDOSecurityQuestionDAOImpl extends GenericDAOImpl<JDOSecurityQuestion, Long> implements JDOSecurityQuestionDAO {
private static final Log logger = LogFactory.getLog(JDOSecurityQuestionDAOImpl.class);
public JDOSecurityQuestion findByName(String name) {
PersistenceManager pm = getPersistenceManager();
Query query = pm.newQuery("SELECT FROM org.atricore.idbus.connectors.jdoidentityvault.domain.JDOSecurityQuestion" +
" WHERE this.name == '" + name + "'");
Collection<JDOSecurityQuestion> securityQuestions = (Collection<JDOSecurityQuestion>) query.execute();
if (securityQuestions == null || securityQuestions.size() != 1)
throw new IncorrectResultSizeDataAccessException(1, securityQuestions.size());
return securityQuestions.iterator().next();
}
}