Galera,
estou usando o VRaptor com o hibernate… Eu tinha feito determinada funcionalidade utilizando um atributo para representar o ID do professor.
Agora criei uma estrutura para pegar esse id da sessão (UserSession). Apenas fiz essa modificaçção e agora a funcionalidade que funciona antes
não funciona mais:
O engraçado que existe professor com id 65, além disso eis a linhas que dá o erro, vejam:
at .BaseCurricularDaoImpl.listarPorTurma(BaseCurricularDaoImpl.java:29)
at .DisciplinaController.getDisciplinasPorTurma(DisciplinaController.java:64)
Veja linha 29 da BaseCurricular:
return Objects.firstNonNull(super.executarHQL("from BaseCurricular WHERE turma.codigo = :codigo_turma order by ordem", new Parametro("codigo_turma", codigoTurma)),new ArrayList<BaseCurricular>());
(viu , nem tem professor envolvido por aí…)
Agora linha 64 do Controller:
List<BaseCurricular> listaDeBase = baseCurricularDao.listarPorTurma(codigoTurma);
Muito estranho né?
Alguém me ajuda?
Estranho? Depende.
Você está utilizando getSingleResult? Ele dá exception quando ele não encontra o resultado no DB.
Esse objeto existe no DB?
Sim, existe o professor de id 65
Agora está pegando da sessão. Mas, antes, como estava pegando? Do banco direto?
Veja também se você não está com o código em cache na hora do deploy.
Antes eu simulava um professor… eu só precisava do ID.
A entidade professor possui apenas um id?
Você já confirmou se o valor que está vindo da sessão é realmente este?
Mas as linhas que estão dando o exception não chegam nem perto de professor!
Ainda mais professor de id 65… (ele existe no banco, mas estam to sem noção este erro)…
[quote=d34d_d3v1l]Mas as linhas que estão dando o exception não chegam nem perto de professor!
Ainda mais professor de id 65… (ele existe no banco, mas estam to sem noção este erro)…
[/quote]Por isso q eu disse para você ver se não é cache.
Outra coisa, você debugou para ver se o erro está estourando lá mesmo?
[quote=d34d_d3v1l]Mas as linhas que estão dando o exception não chegam nem perto de professor!
Ainda mais professor de id 65… (ele existe no banco, mas estam to sem noção este erro)…
[/quote]Por isso q eu disse para você ver se não é cache.
Outra coisa, você debugou para ver se o erro está estourando lá mesmo?
Pelo que eu entendi, antes de você alterar para pegar o valor da sessão, não estava dando erro, certo?
Não debuguei…
bom, eu limpro o projeto clean,
e depois rodo no servidor toda vez q faço alguma modificação.
Isto limpa o cache?
Aqui no trabalho antes de fazer um build a gente sempre apaga as pastas temporárias do JBoss tipo temp e data.
Mas debugue vai dar para perceber caso o código esteja errado.
Na tabela baseCurricular tem a columo Professor… Dei um select, alguns professores estavam como NULL…
Achei que pdoeria ser isto… então dei um delete em todos os registros que professor IS NULL … tentei de novo.
Mesmo erro. Dei um select na tabela professor pra ver se existia o professor de id 65, e ele existe (como disse anteriormente).