Resolvendo problemas entre QueryDSL e SpringBoot 1.4.x

Hoje iremos analisar e resolver um problema relacionado a migração para a ultima versão estável do SpringBoot e a integração com a API QueryDSL.

O que é a QueryDSL


A QueryDSL é uma API que permite a escrita de instruções JPQL/SQL de forma fluente, facilitando a escrita de querys complexas e deixando essa operação similar a chamadas de métodos do modelo de domínio, para detalhes segue o site oficial:


Evolução entre QueryDSL 3.x.x e 4.x.x


Na evolução da QueryDSL, houveram algumas mudanças significativas em , dependência, estrutura e código fonte, vamos analisar alguns deles:

QueryDSL 3.x.x:

Dependência Maven para a QueryDSL 3.x.x.

Interface Predicate para a QueryDSL 3.x.x.

Nesse exemplo notamos que a interface Predicate esta localizada no packagecom.mysema.query.types.Predicate.


QueryDSL 4.x.x: 

Dependência Maven para a QueryDSL 4.x.x. 


Interface Predicate para a QueryDSL 4.x.x.

Nesse exemplo notamos que a interface Predicate esta localizada no packagecom.querydsl.core.types.Predicate.

Além das mudanças acima, existem outros pontos mudaram:
  • Forma de uso dos métodos e funcionalidades da API;
  • Escrita de Querys;
  • Package das demais classes e interfaces.

Evolução entre SpringBoot 1.3.x e 1.4.x


Uma das grandes vantagens em utilizar a plataforma Spring, é a rapidez na qual novas versões são lançadas, corrigindo bugs, adicionando novas funcionalidades, melhorando funcionalidades existentes, entre outras.

Recentemente foi lançada a ultima versão do Framework, a versão 1.4.0, esta contém várias melhorias interessantes, para mais detalhes veja o post oficial do site da Pivotal:

https://spring.io/blog/2016/07/28/spring-boot-1-4-released

Este ultimo release do SpringBoot, utiliza como padrão a dependência da QueryDSL 4.x.x, com isso ao realizar a atualização de versão,  devemos analisar os impactos que iram acontecer sobre o sistema caso este utilize a QueryDSL 3.x.x nas operações de persistência.

Até a próxima.


Comentários

Popular Posts

Criando arquivos de log com Log4J

Monitorando o Tomcat com Java VisualVM

Gerenciamento de Transações com EJB - Parte 2

Injeção de dependências em Java EE usando @Inject, @EJB e @Resource ?

AngularJS - Formatando Datas com o Filter Date

JBoss AS 7 - Instalação e Configuração

Configurando o arquivo application.properties do SpringBoot

Métodos Utilitários da Classe String

Criando Módulos e DataSources no Wildfly

Criando um Projeto com Spring Boot