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)