Pular para o conteúdo principal

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

Postagens mais visitadas deste blog

Utilizando LocalDate, LocalDateTime e LocalTime na Prática

Tudo bem pessoal, hoje iremos avaliar e analisar operações de manipulação de Datas envolvendo a JavaTime API introduzida no Java 8.

Exemplos da java.time API
Já se passaram alguns anos desde o lançamento do Java 8 e mesmo após este período, há empresas que desconhecem o poder da java.time API, esta foi uma nova API de datas introduzida no Java 8 visando resolver problemas que tínhamos com as velhas classes Date e Calendar.

Vamos mostrar vários exemplos práticos do uso da API:
Criação de objetos No exemplo abaixo, estamos criando os objetos para manipulação de datas, perceba que temos 3 tipos, sendo LocalDate para manipular datas, LocalDateTime para manipular data/hora e LocalTime para horas:
LocalDate localDate = LocalDate.now(); LocalDateTime localDateTime = LocalDateTime.now(); LocalTime localTime = LocalTime.now();
Utilizando formatação Aqui realizamos a operação de formatação, perceba que não foi necessário utilizar a classe SimpleDateFormat, que usaríamos em conjunto com D…

Lendo e Manipulando arquivos CSV com Java

Olá hoje veremos como realizar a leitura e manipulação de arquivos CSV com Java, mostrando que as novas versões da plataforma Java deixaram algumas tarefas simples de serem realizadas.

Exemplo de Arquivo Hoje em dia é comum ao realizar integrações ou carga de dados o uso de arquivos CSV, isto porque, este arquivo possui uma estrutura de fácil entendimento e simples de manipular na maioria das plataformas de desenvolvimento.

Para realizar a leitura dos dados vamos manipular um arquivo com as seguintes colunas: namecpfagephone address:

name;cpf;age;phone;address caio;123456789;20;1145223643;AvenidaPaulista vinicius;147852369;18;1125253625;AvenidaManoel sandra;963258741;30;1174587858;RuaTeixeira regina;125478522;40;1145254536;RuaFernando fernando;785245563;42;1145253669;RuaPereira augusto;456123014;50;1125363633;AvenidaPaulinia maria;456123789;10;1125455525;AvenidaNossaSenhora
Para representar os dados em objetos Java iremos utilizar a seguinte classe:

importlombok.AllArgsConstruc…

Versionamento de Banco Dados com Flyway

Olá pessoal, hoje iremos analisar e aprender como realizar o versionamento e gerenciamento das bases de dados relacionais utilizando o framework Flyway.

Versionamento de Banco Dados Ao trabalhar com desenvolvimento de sistemas é comum realizarmos o versionamento, isso porque uma aplicação pode necessitar de correções, novas funcionalidades e evoluções, onde para garantir a compatibilidade e cuidar do seu ciclo de vida, geramos versões onde é especificado quais itens estão presentes em cada release.
Vamos imaginar seguinte cenário: Sistema ERP1.0.0: Entrega dos módulos Financeiro e RH;1.1.0: Entrega do módulo Contas a Receber. Perceba que a ideia é controlar o que cada versão possui de diferente, e para controlar essas mudanças no lado da aplicação existem várias técnicas e ferramentas, mas e para controlar as mudanças no lado do Banco de dados ? 
Para isso podemos utilizar ferramentas de versionamento que ajudam a realizar este controle, a ferramenta que iremos utilizar é o Flyway.
Con…