Problema com Annotations no hibernate

boa tarde!

Eu estou tentando usar annotations com o hibernate, e eu estou tendo problemas com o caso do composite-id

eu estou fazendo as minhas classes desta forma abaixo, e eu quero fazer uma query assim:
select count(codigoMatrizGrupo) from FornecedorBean

no erro está falando que não conhece a coluna codigoMatrizGrupo, ou seja, ele gera a query assim:
select count(codigoMatrizGrupo) from FornecedorBean
sendo que no lugar de codigoMatrizGrupo ele deveria substituir pelo nome da coluna do banco.

alguém pode me dizer aonde pode estar errado o mapeamento?!!! Se for isso né

@Entity
@Table(name="MINHATABELA")
@IdClass(FornecedorPKBean.class)
public class FornecedorBean implements Serializable {

    @Id
    @Column(name="MINHACOLUNA", nullable = false, length=7)
    private Integer codigoMatrizGrupo;
    
    @Id
    @Column(name="MINHACOLUNA2", nullable = false, length=20)
    private String codigo;
    
    @Column(name="CL08_NOMECLI", nullable = true, length=40)
    private String nome;
//hashcode and equals
//gets and setters
Embeddable
public class FornecedorPKBean implements Serializable {

    private Integer codigoMatrizGrupo;
    
    private String codigo;
//hashcode and equals
//getters e setters

obrigado!!

Procura na Api do Hibernate por Projections.rowCount().

Ex, assim retorna o count(*) da pesquisa.

Session session = (Session) getJpaTemplate().getEntityManagerFactory().createEntityManager().getDelegate();

Criteria criteria = session.createCriteria(FornecedorPKBean.class);

List listCount = criteria.setProjection(Projections.rowCount()).list();

if(listCount != null && !listCount.isEmpty()){
   Long count = new Long(((Number) listCount.iterator().next()).longValue());
}

então eu tenho que fazer o count é no FornecedorPKBean?

continuo com o problema pessoal, eu estou seguindo passo a passo o exemplo do manual pdf do hibernate annotations, alguém pode me dizer o q tem de errado ali??

Tenta assim.

Criteria criteria = session.createCriteria(FornecedorBean.class); Long count = (Long) criteria.setProjection(Projections.count("codigoMatrizGrupo")).uniqueResult(); Maiores informações aqui ou aqui.

Muito obrigado pelo resposta!
Vou testar com o criteria, é que eu pretendia fazer isso usando o hql, eu tenho que usar o criteria mesmo? ou com hql funciona??

valeu!

Eu tentei fazer com Criteria, e continuou sem transformar a minha propriedade da classe na coluna da tabela…

Hibernate: select count(this_.codigoMatrizGrupo) as y0_ from CL_CLIE_FORN this_
29/04/2008 09:56:38 org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: -4005, SQLState: 42000
29/04/2008 09:56:38 org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: UNKNOWN COLUMN NAME:CODIGOMATRIZGRUPO
org.hibernate.exception.SQLGrammarException: could not execute query
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)