luiscolling 8 de out. de 2009
criteria.list().get(0) -> quando você faz isso indica para pegar o primeiro item da lista.
(Integer)criteria.list().get(0) -> Você está fazendo um cast para Integer, acho que aqui esta o problema.
Acho que o que você precisa é saber a quantidade de linhas esta achando.
((Integer) criteria.list().size()).intValue()
edysnipes 8 de out. de 2009
Olha só, assim funciona:
public Integer qtdTotalPNR () {
Session sessao = HibernateUtil .getSession () ;
Criteria criteria = sessao .createCriteria ( PNR .class ) ; criteria.setProjection(Projections.rowCount());
return (( Integer ) criteria .list () .get ( 0 )) .intValue () ;
}
o retorno é um int = 4799.
von.juliano 8 de out. de 2009
Faça assim:
return (Integer) criteria.uniqueResult();Blz? Flw! :thumbup:
edysnipes 8 de out. de 2009
Opa. O problema persiste.
Não seria nada aqui?
.add ( Property.forName ( "pnrSituacao" ). in ( new Integer [] { 1 , 2 , 3 , 5 , 6 , 7 , 9 })) ;
Código atual:
public Integer qtdPNRAdmPMB ( PNRSituacao pnrSituacao ) {
Session sessao = HibernateUtil .getSession () ;
Criteria criteria = sessao .createCriteria ( PNR .class )
.add ( Property .forName ( "pnrSituacao" ) .in ( new Integer [] {1 ,2 ,3 ,5 ,6 ,7 ,9 })) ;
criteria .setProjection ( Projections .rowCount ()) ;
return ( Integer ) criteria .uniqueResult () ;
}
O mesmo erro!
cezbatistao 8 de out. de 2009
fala ae cara, blz?
então no seguinte trecho
Property.forName("pnrSituacao")
pnrSituacao, por acaso é um Objeto que possui uma propriedade com o nome “idSituacao”?
caso seja, vc precisa fazer assim:
public Integer qtdPNRAdmPMB ( PNRSituacao pnrSituacao ) {
Session sessao = HibernateUtil .getSession () ;
Criteria criteria = sessao .createCriteria ( PNR .class )
.add ( Property .forName ( "pnrSituacao.idSituacao" ) .in ( new Integer [] {1 ,2 ,3 ,5 ,6 ,7 ,9 })) ;
criteria .setProjection ( Projections .rowCount ()) ;
return ( Integer ) criteria .uniqueResult () ;
}
espero ter ajudado!
edysnipes 8 de out. de 2009
Resolvido:
Consegui alterando o método para:
public Integer qtdPNRBySituacao ( PNRSituacao pnrSituacao ) {
Session sessao = HibernateUtil .getSession () ;
Criteria criteria = sessao .createCriteria ( PNR .class )
.add ( Restrictions .eq ( "pnrSituacao" , pnrSituacao ) ) ;
criteria .setProjection ( Projections .rowCount ()) ;
return (( Integer ) criteria .list () .get ( 0 )) .intValue () ;
}
Valew pela ajuda!
lucasddaniel 6 de nov. de 2009
comigo funcionou assim:
criteria.setProjection(Projections.rowCount());
return (Integer)criteria.uniqueResult();