Duvida Com DAO + JSF

Bom to com uma duvida no meu projeto, tipo eu tenho um DaoGenerico que tem os metodos dele talz…
AI na hora q eu for Criar o meu ManagedBean eu vo criar uma instancia do Dao nele, so que por exemplo no metodo…

public List<T> listaPorCriterio(String query, Map<String,Object> parametros){
		Query q = session.createQuery(query);
		
		for(String chave : parametros.keySet()){
			q.setParameter(chave, parametros.get(chave));
		}
		
		return q.list();
	}

Ah Implementação do Metodo Ficaria Toda no ManagedBean,
No Caso Colocar a Query e criar os parametros… e sei la eu achei meio estranho, existe algum padrão bem usado para esse caso???

Ou Eh assim mesmo e crio tudo no managedbean???

se alguem conseguiu entender e puder me ajudar blz :D…

Falo

N sei c fico Claro Por Exemplo…

Com o Metodo da minha otra mensagem…

Seria Melhor uma outra classe com a implementação. ou deixaria assim /

public class UsuarioFaces {
	
	private Usuario usuario = new Usuario();
	private GenericDAO<Usuario> dao = new DAOFactory().getUsuarioDAO();
	private List<Usuario> lista = new ArrayList<Usuario>();
	
	public String verificaUsuario(){
		Map<String, Object> parametros = new HashMap<String, Object>();
		parametros.put("log", usuario.getLogin());
		parametros.put("pass", usuario.getSenha());
		usuario =  dao.ObjetoPorCriterio("From Usuario u where u.login = :log and u.senha = :pass", parametros);
			if(usuario != null){
				return "loginOk";
			}
				return "fail";
	}
}

Obs: Não testei o meotod talvez esteja errado :P…