Olá Pessoal, tudo bem?
No artigo de hoje vou relatar o que me motivou a modificar a versão do Hibernate que utilizo no projeto SeminariosCientificos abordado em sala de aula. Veja mais sobre esses pontos na continuação do artigo.
Motivação
O projeto estava utilizando 4.2.15.Final do Hibernate, versão do Hibernate liberada em Julho de 2014. Estamos em 2021… estava bem desatualizada! O que significa isso? Que poderiam haver brechas de segurança, classes depreciadas (descontinuadas), mudanças estruturais em pontos importantes como descreverei nos próximas partes.
Mas qual foi o motivo principal? Nessas ¨férias de verão¨ das aulas resolvi mudar o projeto para começar a utilizar a nova API de Data e Hora do Java 8 (Java Time), quando percebi, realizando os testes, que os campos que foram modificados de java.util.Date para java.time.LocalDate os quais ainda ficaram com a annotation @Temporal no mapeamento ORM estavam gerando o seguinte erro:
@Temporal should only be set on a java.util.Date or java.util.Calendar property: br.com.mauda.seminario.cientificos.model.Seminario.data
Assim resolvi como teste, remover a annotation @Temporal. Funcionou? Nao!!! Mas mudou o erro:
org.hibernate.HibernateException: Wrong column type in PUBLIC.PUBLIC.TB_SEMINARIO for column data. Found: date, expected: varbinary(255)
Isso me levou a refletir se a versão do Hibernate utilizada no projeto não funcionava com a versão 8 do Java. E realmente era isso! Bom então é hora de atualizar a versão da biblioteca do Hibernate. Nesse momento, ainda era dezembro de 2020, então consultei as últimas versões e a última versão estável na época era a 5.4.27.Final. Então bora atualizar!
Atualizando o Hibernate!
Para atualizar peguei a versão mais recente, 5.4.27.Final, e modifiquei no arquivo pom.xml do projeto. Abaixo temos a versão anterior:
1 2 3 4 5 |
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.15.Final</version> </dependency> |
Agora a versão atualizada:
1 2 3 4 5 |
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.4.27.Final</version> </dependency> |
finally {
Existem ainda outros pontos que foram necessárias mudanças no projeto para que tudo funcionasse corretamente. Essas alterações serão tratadas em artigos futuros!
Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Marcos says
Boa tarde, Mauda. Legal seu texto. Poderia indicar os demais artigos sobre o que foi necessário modificar com a atualização?
Estou em uma situação semelhante, migrando do 4.2.6 para a atual. E o hibernate-search também… Aparentemente estou com um problema no deploy, algo relacionado com o bean…
Enfim, se puder indicar os outros artigos.. Valeu!
Mauda says
Olá Marcos, tudo bem?
Obrigado pelo feedback!
Os outros textos são os seguintes:
http://www.mauda.com.br/?p=2333
http://www.mauda.com.br/?p=2326
http://www.mauda.com.br/?p=2322
Sobre o hibernate-search nunca trabalhei com ele.
Qualquer coisa coloque o erro que posso ver se posso te ajudar em algo.
Obrigado e precisando estamos aqui!