hibernar os tipos Em Cascata da JPA

aprendemos sobre o mapeamento de entidades associadas em hibernar já em tutoriais anteriores, tais como mapeamento de um para um e mapeamento de um para muitos. Lá queríamos salvar a entidade mapeada sempre que a entidade proprietária de relacionamento fosse salva. Para ativar isso, tivemos o atributo “CascadeType”. Neste tutorial de tipos em cascata da JPA, vamos aprender sobre vários tipos de opções disponíveis para cascata via CascadeType.como funcionam os tipos Em Cascata da App?

Antes de seguir em frente, vamos ver como este atributo do tipo cascata é definido no seu código. Vamos ter um exemplo para uma compreensão mais clara. Considere um cenário em que um empregado pode ter várias contas; mas uma conta deve ser associada a apenas um empregado. Vamos criar entidades com informação mínima por uma questão de clareza.emprego.Java

AccountEntity.java

veja a linha a negrito no código fonte acima para EmployeeEntity.java. Ele define “cascade=CascadeType.ALL” e significa, fundamentalmente, que qualquer mudança aconteceu no EmployeeEntity deve cascata para AccountEntity bem. Se você salvar um empregado, então todas as contas associadas também serão salvos no banco de dados. Se você excluir um empregado, em seguida, todas as contas associadas com esse empregado também ser excluído. É simples.

mas e se apenas quisermos gravar em cascata apenas as operações, mas não excluir a operação. Então precisamos especificá-lo claramente usando o código abaixo.

Agora só quando os métodos save() ou persist() são chamados usando instância de empregado, então apenas as contas serão persistidas. Se qualquer outro método é chamado em sessão, o efeito não afetará/cascata para contas.os tipos em cascata suportados pela arquitetura Java Persistence são os seguintes:

  1. CascadeType.Persistence: cascade type presist means that save() or persist() operations cascade to related entities.
  2. CascadeType.MESCLAR : tipo de cascata merge significa que as entidades relacionadas são fundidas quando a entidade proprietária é fundida.
  3. CascadeType.REFRESH: cascade type refresh faz a mesma coisa para a operação refresh ().
  4. CascadeType.REMOVE: cascade type remove remove todas as entidades relacionadas associadas a esta configuração, quando a entidade proprietária for removida.
  5. CascadeType.DETACH: cascade type detach detalha todas as entidades relacionadas Se ocorrer um “desaperto manual”.
  6. CascadeType.TODO : o tipo de cascata all é abreviado para todas as operações em cascata acima referidas.

não existe um tipo de cascata padrão na App. Por omissão, nenhuma operação é em cascata.

A configuração em cascata opção aceita uma matriz de CascadeTypes; assim, para incluir apenas atualiza e funde-se na operação em cascata para um um-para-Muitos de relacionamento, como em nosso exemplo, você poderá ver o seguinte:

Acima em cascata irá causar contas de coleta de ser apenas mesclado e atualizada.

hibernar cascata tipos

agora permite entender o que é cascata em hibernar em que cenário o usamos.

para além dos tipos fornecidos pela APP em cascata, existe mais uma operação em cascata no hibernato que não faz parte do conjunto normal acima discutido, chamada “remoção órfã”. Isso remove um objeto de propriedade da base de dados quando ele é removido de sua relação proprietária.vamos entender com um exemplo. No nosso exemplo de entidade de empregado e de conta, actualizei-os como se segue e mencionei “orphanRemoval = true” nas contas. Significa essencialmente que sempre que remover uma “conta do conjunto de contas” (o que significa que estou a remover a relação entre essa conta e o empregado), a entidade da conta que não está associada a nenhum outro empregado na base de dados (ou seja, órfão) também deve ser eliminada.emprego.Java

AccountEntity.java

TestOrphanRemovalCascade.java

é uma maneira muito boa de remover os itens correspondentes/inadequados de uma coleção (ou seja, muitos-para-um ou um-para-muitos relacionamentos). Você apenas remover o item da coleção e hibernar cuidar do resto das coisas para você. Ele irá verificar se a entidade é referenciada de qualquer lugar ou não; se não for, então ele irá excluir a entidade do próprio banco de dados.

deixe-me saber os seus pensamentos e perguntas sobre hibernar 5 tipos de cascata ou JPA tipos de cascata, se houver.feliz aprendizagem !!

Oracle Blog on cascade types

Was this post helpful?

avise-nos se gostou do post. Só assim podemos melhorar.
Sim
Não

Deixe uma resposta

O seu endereço de email não será publicado.