Precisava trazer os dados do meu banco que nao fosse nulo e nao fosse nomes repetidos, os nulos eu consegui mas os nomes repetidos continua trazendo ainda alguem sabe o q faco?
Veja usso essa criteria e ele me retorna os que nao sao nulos correta mente
publicArrayListbuscaOsNomes()throwsException{returnnewArrayList(dao.getList("from CBean as c where c.nome != '' "));}
mas precisava implementar tambem para que nao retornase os nomes repetidos tambem ai tentei isso
publicArrayListbuscaOsNomes()throwsException{returnnewArrayList(dao.getList("from CBean as c where c.nome != '' and c.nome != c.nome"));}
e nao deu certo ele n carrega mais a combobox com essa criteria
e tb como instanciar criteria no caso crio esse objeto como? mais uma vez obrigada!
Andre_Fonseca
oi,
como é feito este método dao.getList() vc pode postar o código??
B
biluquinha
Exatamente veja
SessionFactorysessionFactory=newConfiguration().configure().buildSesionFactory();GenericDAOdao=newGenericDAO(CBean.class,sessionFactory);publicArrayListbuscaOsNomes()throwsException{//criteria.setProjection(Projections.distinct("propertyName"));returnnewArrayList(dao.getList("from CBean as c where c.nomes != ''"));}
Andre_Fonseca
oi
eu quis dizer o código do método getList da classe GenericDAO
talvez você tenha que criar outro método assim getListWithDistinct(String propertyName).
Fis da maneira que falo e me deu erro em 4 linhas desse metodo na linha session.setResultTransformer a variavel session nao consegue encontrar o metodo setResultTransformer
no bloco try a linha objs = session tambem esta com erro!
Devo deixar o codigo do jeito que vc me mando mesmo? pq nunca vi uma linha comeca com .(algo) achei estranho e assim mesmo?
ele fala que nao existe setResultTransformer nao consegue localizar esse metodo! e uma outra duvida depois na minha control devo fazer oq? chamar assim?
publicArrayListbuscaOsNomes()throwsException{returnnewArrayList(dao.getListDistinct("from CBean as c where c.nome != ''"));}
?
Andre_Fonseca
biluquinha:
Certo o numero de linhas com erro caiu para 1 apenas aqui
ele fala que nao existe setResultTransformer nao consegue localizar esse metodo! e uma outra duvida depois na minha control devo fazer oq? chamar assim?
publicArrayListbuscaOsNomes()throwsException{returnnewArrayList(dao.getListDistinct("from CBean as c where c.nome != ''"));}
n e isso que define que nao ira ter nomes repetidos? pq n metodo que vc me passo vc tirou isso! enfim em qual linha define que nao pode trazer registros repetidos? obrigada mais uma vez!
Andre_Fonseca
oi
o setProjections funcionaria se você estivesse criando um criteria, mas no seu caso você está fazendo um .createQuery(query) direto do session.
uma outra alternativa é você retornar um LinkedHashSet ao invés de uma lista, isso porque um Set remove automaticamente os registros duplicados, no proprio tópico mostra isso
estou meio sem tempo agora, depois eu posso te ajudar melhor…
t+
B
biluquinha
Dei uma boa olhada la mas teve muita coisa que nao entendi,
tipo aqui
Criteria criteria = session.createCriteria(Permissao.class) no lugar de Permissao.class o que devo por? meu bean?
fico no aguardo obrigada!
Andre_Fonseca
oi
no seu caso você teria que alterar o seu dao genérico para ao invés de receber uma string - query sql - ele deveria receber por exemplo o seu bean
eu acho melhor a segunda opção
dá uma procurada no forum, tem vários tópicos discutindo