ola amigos,
estou desenvolvendo uma aplicação no hibernate, e no momento da consulta sempre retorna um erro.
Vou postar aqui meu codigo e o erro que aparece para que voces possam me ajudar.
public boolean existe() throws Exception{
boolean existe;
session = HibernateUtil.currentSession();
System.out.println("Teste 1");
Query q = session.createQuery("from conta cont where cont.descricaoConta = :descricaoConta");
System.out.println("Teste 2");
q.setString("descricaoConta", this.cont.getDescricaoConta());
System.out.println("Teste 3");
if ((conta)q.uniqueResult() == null)
existe = false;
else existe = true;
HibernateUtil.closeSession();
System.out.println("Teste 4");
return existe;
}
dou um Run no projeto
compile:
run:
Construtor full da classe Conta
Tenta ler a Config!
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Conseguiu ler a Config!
Teste 1
Teste 2
Teste 3
ate aqui beleza, ai realiza a consulta:
Hibernate: select conta0_.CODIGOCONTA as CODIGOCO1_0_, conta0_.DESCRICAOCONTA as DESCRICA2_0_, conta0_.VALORCONTA as VALORCONTA0_, conta0_.MULTAPORCMES as MULTAPOR4_0_, conta0_.PERGUNTARQTD as PERGUNTA5_0_, conta0_.DESCONTOBOLETO as DESCONTO6_0_, conta0_.CODIGORELATORIOLAYOUT as CODIGORE7_0_, conta0_.BOLSADESCCONTA as BOLSADES8_0_, conta0_.REQUERIMENTO as REQUERIM9_0_, conta0_.CODIGOCONTABILDEBITO as CODIGOC10_0_, conta0_.CODIGOCONTABILCREDITO as CODIGOC11_0_, conta0_.NOMEUSUARIO as NOMEUSU12_0_, conta0_.DATALANCUSUARIO as DATALAN13_0_, conta0_.SITUACAOCONTA as SITUACA14_0_, conta0_.VERIFICABOLSADESCONTO as VERIFIC15_0_, conta0_.CONTAIMPRESSAO as CONTAIM16_0_, conta0_.ENTIDADE as ENTIDADE0_, conta0_.CODIGOINICIALBOLETO as CODIGOI18_0_, conta0_.JUROSPORCMES as JUROSPO19_0_, conta0_.BAIXAAUTOMATICA as BAIXAAU20_0_, conta0_.MENSALIDADE as MENSALI21_0_, conta0_.CODIGOCURSOMENSALIDADE as CODIGOC22_0_, conta0_.CODIGOCONTAMULTA as CODIGOC23_0_ from CONTAS conta0_ where conta0_.DESCRICAOCONTA=?
e esse é o erro:
java.lang.ArrayIndexOutOfBoundsException: 4
at org.gjt.mm.mysql.ResultSet.getDouble(ResultSet.java)
at org.gjt.mm.mysql.ResultSet.getDouble(ResultSet.java)
at org.gjt.mm.mysql.ResultSet.getDouble(ResultSet.java)
at org.hibernate.type.DoubleType.get(DoubleType.java:20)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:78)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:69)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
at org.hibernate.persister.entity.BasicEntityPersister.hydrate(BasicEntityPersister.java:1749)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1314)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1242)
at org.hibernate.loader.Loader.getRow(Loader.java:1139)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:552)
at org.hibernate.loader.Loader.doQuery(Loader.java:666)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:221)
at org.hibernate.loader.Loader.doList(Loader.java:1959)
at org.hibernate.loader.Loader.list(Loader.java:1943)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:405)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:293)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:862)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:630
na inserção dos valores no banco esta tudo ok, portanto nao deve ser erro de mapeamento, acho que o erro esta na hora da atribuicao do
q.uniqueResult()
o que acham?