Nova versão Hibernate e Hibernate Validator

Nesses últimos dias foram atualizados os versões do Hibernate e Hibernate Validator com varias correções de bugs. Hora de atualizar seu pom:

<hibernate.version>5.2.15.Final</hibernate.version>
<hibernate.validator>6.0.8.Final</hibernate.validator>

Para todas a informações veja os links oficiais:

“…a luz verdadeira que veio ao mundo e ilumina todas as pessoas.”João 1:9

Anúncios

Bloqueio Otimista com JPA

Todos sabem que o melhor bloqueio que existe em soluções corporativas são os otimistas. No JPA, você pode usar a anotação @Version fazendo com que ele gerencie o bloqueio 100% automático. Hoje tive que fazer um controle desses no qual percebemos que o índice de alteração do registro seria bem elevado e que o valor inteiro poderia facilmente estourar em alguns meses. Qual foi a solução? Simplesmente usamos uma data ao invés de um inteiro:

sem-titulo

Assim, cada vez que o registro é alterado, o JPA automaticamente carimba e grava a nova data de alteração, fazendo então o controle de bloqueio otimista. Simples, rápido e 100% efetivo! Até a próxima 😉 !

“Venham a mim, todos vocês que estão cansados de carregar as suas pesadas cargas, e eu lhes darei descanso.” Mateus 11:28

JPA com MongoDB

hibernate_ogm_600pxVocê já pensou em usar JPA com MongoDB? Não faz sentido isso certo? JPA é uma especificação de persistência de objetos em entidades relacionais e não se encaixa com MongoDB. Exato! Mas quem disse que não da? A Hibernate lançou um provider de JPA chamado Hibernate OGM que faz mesma função do JDBC, criando um ponte de abstração para o banco de dados NoSQL MongoDB.

Como eu amo esse Java kkkkk! Mais uma opção fantástica de projeto! Bons estudos pessoinhas.

“Até um tolo pode passar por sábio e inteligente se ficar calado.” Provérbios 17:28

Conversor Proprietário – Enum JPA

mulheres-cabo-av-composto-ao-conversor-3-5-milimetros-plug-macho_sltbdq1316514236148O JPA tem duas opções que faz mapeamento de um Enum para um campo de uma tabela no banco de dados: o número automático ordinal ou a propriedade name. Como ficaria se você  precisasse mapear um valor especifico, não sendo nenhum desse dois? A resposta é que você precisa usar a extensão proprietário do seu provedor de JPA para fazer um conversor especifico para os seu respectivo mapeamento. Segue um ótimo exemplo que também pode ser utilizado como tutorial de conversor para Hibernate 4.

“Celebrai com júbilo ao SENHOR, todas as terras.” Salmos 100:1

A collection with cascade=”all-delete-orphan” was no longer referenced by the owning entity instance

meu-malvado-favorito-2Para aqueles que já estão usando delete orphan automático do JPA2 vão mais cedo ou mais tarde se deparar com essa situação de erro relacionado com os ponteiros de coleções bag do hibernate.  Encontrei nesse artigo a explicação completa do porque do erro e como contornar.

“Busquem, pois, o Reino de Deus, e essas coisas lhes serão acrescentadas.” Lucas 12:31

JPA2 – Orphan Removal

t1Quando uma entidade alvo em uma relação “um-para-um” ou “um-para-muitos” é removido a partir da relação, é muitas vezes desejável que a operação de remoção de cascata aconteça automaticamente para a entidade alvo. Tais entidades alvo são considerados “órfãos”, e o atributo orphanRemoval definido pela especificação do JPA2 foi feito exclusivamente gerar a deleção, não necessitando mais de extensões proprietárias. Veja um tutorial mais completo.

“E quando estiverem orando, se tiverem alguma coisa contra alguém, perdoem-no, para que também o Pai celestial lhes perdoe os seus pecados.” Marcos 11:25