Bom Dia!
Pessoal.... estou tendo um problema estranho aqui.
Tenho as classes Punicao e PunicaoDao.
Estou usando Hibernate.
Em um certo instante da aplicação o usuário pode inserir punições em clubes de futebol . A inserção ocorre sem problemas e a exclusão também.
O usuário pode solicitar um relatório que gera um arquivo xml e na lógica dos dados que serão inclusos nesse xml é efetuada uma pesquisa nas punições que o clube recebeu e faz uma subtração nos pontos que o clube tem em certo campeonato.
Efetuei todos os testes com todo o ambiente em meu notebook e o xml é gerado sem erros.
Porém ontem foi efetuado o deploy no ambiente do cliente e a inserção/exclusão está ok, mas a publicação do xml está dando erro.
Pelo que eu entendi a tabela não existe.
Mas a tabela existe tendo em vista que eu até fiz inserções na mesma.
Podem me auxiliar???
SQL Error: 1146, SQLState: 42S02
Table 'igfutebol.Punicao' doesn't exist
org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
at com.guerreiroconsult.igfutebol.persistencia.PunicaoDao.getSomaPunicoes(PunicaoDao.java:167)
at com.guerreiroconsult.igfutebol.negocio.bean.Classificacao.getPontosGanhos(Classificacao.java:118)
at com.guerreiroconsult.igfutebol.negocio.bean.Criterio$1.getValorCriterio(Criterio.java:15)
at com.guerreiroconsult.igfutebol.negocio.bean.Classificacao.comparaCriterio(Classificacao.java:237)
at com.guerreiroconsult.igfutebol.negocio.bean.Classificacao.compareTo(Classificacao.java:208)
at com.guerreiroconsult.igfutebol.negocio.bean.Classificacao.compareTo(Classificacao.java:1)
at java.util.Arrays.mergeSort(Arrays.java:1144)
at java.util.Arrays.mergeSort(Arrays.java:1155)
at java.util.Arrays.mergeSort(Arrays.java:1155)
at java.util.Arrays.sort(Arrays.java:1079)
at java.util.Collections.sort(Collections.java:117)
at com.guerreiroconsult.igfutebol.negocio.export.xml.PublicarXMLThread.gerarClassificacao(PublicarXMLThread.java:1025)
at com.guerreiroconsult.igfutebol.negocio.export.xml.PublicarXMLThread.gerarClassificacao(PublicarXMLThread.java:1055)
at com.guerreiroconsult.igfutebol.negocio.export.xml.PublicarXMLThread.geraXML01(PublicarXMLThread.java:185)
at com.guerreiroconsult.igfutebol.negocio.export.xml.PublicarXMLThread.run(PublicarXMLThread.java:112)
at java.lang.Thread.run(Thread.java:619)
Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'igfutebol.Punicao' doesn't exist
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1467)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
... 22 more
Aqui está o código onde está o erro.
public Long getSomaPunicoes(Time t, Campeonato c){
List result = null;
session = HibernateUtil.getOpenSession();
StringBuilder query = new StringBuilder();
query.append("select sum(pontos_perdidos) as pontos_perdidos ");
query.append("from punicao p where id_time = :idTime and id_campeonato = :idCampeonato ");
result = session.createSQLQuery(query.toString()).setLong("idTime", t.getId()).setLong("idCampeonato", c.getId()).list();// nessa linha
if(result.get(0) != null){
return ((BigDecimal)result.get(0)).longValue();
}else{
return new Long(0);
}
}