Cascade remove no JPA

As ações de cascade em mapeamentos de entidades são facilitadores que nos ajudam no dia a dia de desenvolvimento quando utilizamos JPA, uma dessas ações facilitadoras é o cascade REMOVE, que aciona mecanismos de deleção quando removido objetos relacionados, ou seja, quando um objeto é deletado e ele possui mapeamento de cascade remove com outro … Continue lendo Cascade remove no JPA

Rest no Java EE 7

A partir do Java EE 7, com o lançamento do JAX-RS 2.0 na especificação JSR-339 construir APIs Rest no Java EE se tornou muito mais simples, onde, com poucas anotações é possível disponibilizar serviços Rest. A biblioteca responsável pela criação de webservices com Rest no Java EE é jax-rs, que é representado pela dependência javax.ws.rs-api: … Continue lendo Rest no Java EE 7

Criando validações de Bean Validation customizadas

Bean Validation é uma especificação Java para tratar validações de dados de forma centralizada, pois as validações são inseridas no próprio modelo através de anotações, assim possibilitando a consistência das informações em diferentes camadas além de possuir integrações com outras especificações como JSF, JPA, Hibernate e JAX-RS. O Bean Validation já fornece uma série de … Continue lendo Criando validações de Bean Validation customizadas

Usando LocalDate(Java 8) no Hibernate4 / JPA 2.1

As novas classes da API de data do java 8 (LocalDate, LocalDateTime, YearMonth, etc) não possuem suporte padrão no mapeamento Hibernate 4/JPA 2.1 que seguem a especificação do Java EE 7, o que não está errado, pois o java EE 7 mantém a compatibilidade com a JDK7, com isso há algumas alternativas para utilizar essas … Continue lendo Usando LocalDate(Java 8) no Hibernate4 / JPA 2.1

Abrindo novas transações dentro de métodos transacionais

É comum em processamento em lotes precisarmos tratar conjuntos de dados em transações separadas, com isso os frameworks mais conhecidos trazem o atributo REQUIRED NEW para simplesmente adicionarmos a anotação no método e o escopo da transação do método ser alterada. Segue abaixo as formas de implementar a abertura de novas transações: Em EJB Java … Continue lendo Abrindo novas transações dentro de métodos transacionais

Utilizando Persist e Merge do entityManager

Em tese, poderia ser dito que os métodos persist e merge são responsáveis por fazerem insert e update de objetos na base de dados, no entanto esse métodos fazem muito mais que isso, eles também refletem no estado das entidades no contexto da aplicação. Persist Segundo a especificação, "Torna a instância managed e persiste", ou … Continue lendo Utilizando Persist e Merge do entityManager

Passando parâmetros na tag JSF ui:include

Ao trabalharmos com arquivos xhtml em JSF, muitas vezes, nos deparamos com arquivos enormes, com isso o JSF possui a tag ui:include que permite a inclusão de outros arquivos do mesmo formato possibilitando uma separação de responsabilidades em arquivos de visão. Para que a inclusão seja mais eficaz, o JSF fornece a tag ui:param, a … Continue lendo Passando parâmetros na tag JSF ui:include

Executando métodos em eventos no ciclo de vida de entidades

Dentro do contexto do java EE é possível realizar alguns eventos baseados no ciclo de vida de uma entidade, como isso conseguimos fazer ações no objeto antes que ele seja inserido, atualizado, removido ou carregado. Isso é possível através dos callback methods para entidades. O JPA disponibiliza anotações para marcar em que momento(pre/post - antes/depois) … Continue lendo Executando métodos em eventos no ciclo de vida de entidades

Usando LocalDate do Java 8 no JavaEE7

No Java 8 foi disponibilizado a nova API de datas, java.time.*, a qual é baseada no JodaTime. Mas como utilizar essa API no contexto de javaEE ? Sabendo que o EE atual é 7, ou seja, possui suporte apenas até o jdk7. Para que isso seja possível, precisamos criar um conversor de atributo do JPA, … Continue lendo Usando LocalDate do Java 8 no JavaEE7

Id composto no JPA

Umas das formas de utilizar id(pk) composto no JPA é com EmbeddedId, segue abaixo um exemplo ilustrativo de como implementar o @EmbeddedId. FuncionarioId.java @Embeddable: Define que é uma classe de composição de Ids, ou seja, todos atributos definidos dentro da classe serão considerados como ids. Funcionario.java @EmbeddedId: Define que o atributo é o id da … Continue lendo Id composto no JPA