[HIBERNATE] Problema com criteria count(*)

2 respostas
T

Bom, estou numa aplicação com HIbernate, e preciso dar um count numa tabela.

Achei alguns tutoriais na net mas nenhum deu certo ainda … por exemplo

public int getCount() {
			
			Criteria criteria = HibernateUtil.getSession().createCriteria(Parcela.class);
			criteria.setProjection(Projection.rowCount());
			
			return (Integer) criteria.uniqueResult();		
		}

Do jeito que está aí em cima, o rowCount() fica sublinhado (The method rowCount() is undefined for the type Projection), estou com algum problema nessa classe Projections, alguém sabe como contornar isso ?

o arquivo inteiro:

package br.com.fastway.cobranca.hibernatedao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.classic.Session;
import org.hibernate.criterion.*;

import br.com.fastway.cobranca.domain.Cartao;
import br.com.fastway.cobranca.domain.Parcela;
import br.com.fastway.common.*;

public class ParcelaDAO {	
	
	//CRIAR
	public boolean create(Parcela parcela) {
		HibernateUtil.getSession().save(parcela);
		return true;
	}
	
	//PESQUISAR
		public List<Parcela> getById(int id) {
			@SuppressWarnings("unchecked")
			List<Parcela> lista = HibernateUtil.getSession().createQuery("from Parcela where id_venda = '"+id+"' order by id").list();
			return lista;		
		}
	
		public List<Parcela> getByIdCartao(int id) {
			@SuppressWarnings("unchecked")
			List<Parcela> lista = HibernateUtil.getSession().createQuery("from Parcela where id_cartao = '"+id+"' order by id").list();
			return lista;		
		}
	
		public List<Parcela> getByFiltro(String query)  {
			@SuppressWarnings("unchecked")		
			List<Parcela> lista = HibernateUtil.getSession().createQuery("from Parcela "+query).list();
			return lista;
		}
		
		public int getCount() {
			
			Criteria criteria = HibernateUtil.getSession().createCriteria(Parcela.class);
			criteria.setProjection(Projection.rowCount());
			
			return (Integer) criteria.uniqueResult();		
		}
		
	//ALTERAR	
		public boolean update(Parcela parcela) {
			
			boolean status = false;
			HibernateUtil.getSession().update(parcela);
			status = true;
			return status;		
		}	
}

2 Respostas

von.juliano

Você passa uma Projection, mas a classe que deve ser usada é Projections.

Blz? Flw! :thumbup:

T

Virxii s do @#$%*

Valew mesmo velho

Criado 4 de março de 2011
Ultima resposta 4 de mar. de 2011
Respostas 2
Participantes 2