java - O que há de novo no Hibernate ORM 5?




jpa hibernate-5.x (2)

Alguns recursos interessantes foram adicionados / aprimorados no Hibernate 5.x. Dê uma olhada rápida.

1. Pesquisa Hibernada

A Pesquisa de hibernação indexa seus objetos de forma transparente e oferece uma pesquisa rápida regular, com texto completo e geolocalização. A facilidade de uso e o fácil armazenamento em cluster são essenciais.

  • Pesquisa de texto completo por entidades - encontre por aproximação (pesquisa difusa)
  • Compatível com cluster - oferece várias estratégias de cluster fáceis de configurar
  • Facetamento e geolocalização - Entidades geolocalizadas são tão fáceis quanto @Spatial

Para mais detalhes sobre a Pesquisa Hibernate, veja isso.

2. Validador do Hibernate

O Hibernate Validator vem com várias regras de validação integradas, como Email, Length, NotBlank, etc.

Expresse regras de validação de maneira padronizada usando restrições baseadas em anotações e se beneficie da integração transparente com uma ampla variedade de estruturas.

Para mais detalhes sobre o Hibernate Validator, veja isso.

3. Suporte aprimorado ao Java 8

Os tipos de dados de data / hora do Java 8 (JSR 310) são suportados e podem ser validados via @Past e @Future. Os tipos opcional e JavaFX também são suportados por meio de um ValidatedValueUnwrapper aprimorado.

4. Hibernate OGM

Acabou de lançar a primeira versão estável.

5. API de inicialização

Nova API de bootstrap - melhor determinismo, melhor integração

Algumas outras coisas:

  • Suporte de digitalização para uso não JPA
  • A NamingStrategy foi removida em favor de uma API melhor projetada
  • Capacidade de manipular tipos Java adicionais para atributos de ID marcados como GenerationType # AUTO. Suporte interno para Number e UUID. Expansível por meio da nova extensão org.hibernate.boot.model.IdGeneratorStrategyInterpreter.
  • Além disso, o suporte para AttributeConverters foi expandido e realizado de forma mais completa

Verifique o Hibernate ORM Roadmap para obter mais detalhes.

Acabei de ver que o quarto candidato foi lançado para o Hibernate 5. O que há de novo no 5 comparado às versões anteriores?


Há uma longa lista de coisas que foram alteradas no Hibernate 5:

  1. Nova API de autoinicialização para que possamos autoinicializar um ambiente JPA programaticamente sem a necessidade de um arquivo persistence.xml .

  2. A partir do 5.0, o Hibernate Spatial faz parte do projeto Hibernate, para que possamos lidar também com dados GIS.

  3. Os tipos de data e hora do Java 8 são suportados em mapeamentos de modelo de domínio. O mapeamento entre os tipos padrão de Data / Hora do SQL e os tipos de classe Java 8 Data / Hora suportados é o seguinte;

    • DATE: java.time.LocalDate
    • TIME: java.time.LocalTime , java.time.OffsetTime
    • TIMESTAMP: java.time.Instant , java.time.LocalDateTime , java.time.OffsetDateTime e java.time.ZonedDateTime
  4. O mecanismo de aprimoramento de bytecode foi redesenhado a partir do zero, e o Hibernate apresenta um plug-in Maven e Gradle. Existem três aspectos principais que podemos aprimorar com a instrumentação de bytecode:

    • Inicialização lenta: os campos podem ser declarados como LAZY e serão buscados apenas quando forem acessados ​​pela primeira vez.

    • Verificação suja: as entidades são aprimoradas para que possam acompanhar todas as propriedades que são alteradas após serem carregadas em um contexto de persistência.

    • Associações bidirecionais: é possível sincronizar os dois lados de uma associação bidirecional automaticamente, mesmo que o desenvolvedor atualize apenas um único lado.

  5. As APIs nativas do Hibernate ( Session , etc) foram atualizadas para usar tipos genéricos. Não há necessidade de transmitir ao buscar entidades.

  6. O Hibernate 5.0 estende isso para um conjunto mais amplo de tipos (por exemplo, UUID ).

  7. Cache de segundo nível por referência. Esse recurso permite o armazenamento direto de referências de entidades no cache de segundo nível para entidades imutáveis.

  8. A partir do Hibernate 5.0, temos um Guia do Usuário completamente novo que foi escrito do zero.

O Hibernate 5.1 adiciona os seguintes recursos:

  1. Agora você pode ingressar em entidades não relacionadas em consultas JPQL e HQL
  2. Carga de várias entidades por identificador

O Hibernate 5.2 adiciona suporte para:

  1. Java 1.8, agora você pode usar Query.stream()
  2. A Session Hibernate estende o EntityManager para que você possa acessar todos os métodos JPA diretamente de uma Session
  3. Suporte para JCache
  4. Tamanho do lote no nível da sessão
  5. Configuração global de fuso horário (por exemplo, UTC) para Timestamp de Timestamp e Time
  6. Dica de passagem distinta
  7. Análise JPQL e HQL mais eficiente de valores constantes
  8. A otimização de transação local do recurso hibernate.connection.provider_disables_autocommit .
  9. Melhor manipulação de literais da API de critérios .






hibernate-5.x