Hibernate-reactive: session.remove && session.getReference

Criado em 7 set. 2020  ·  3Comentários  ·  Fonte: hibernate/hibernate-reactive

Olá, pelo que entendi, seguindo o jpa, só há uma maneira de remover entidade desanexada:

factory.withTransaction((session, transaction) -> 
    session.merge(sampleEntity).invokeUni(session::remove)
).await().indefinitely();

Tudo está bem, mas se for sobre desempenho, a operação de mesclagem leva muito tempo e pode causar problemas reais de desempenho. Por exemplo, de acordo com minhas medições de tempo imprecisas, a remoção de 5000 entidades leva ~ 4s, em hibernação leva 50ms.

Acabei de ler sobre um novo método chamado session.getReference que retorna a instância persistente de determinada entidade. É possível permitir seu uso por session.remove ?

bug

Todos 3 comentários

Acabei de ler sobre um novo método chamado session.getReference que retorna a instância persistente de determinada entidade. É possível permitir seu uso para session.remove ?

Ah, bom ponto, absolutamente você deve ser capaz de fazer isso. Eu fiz funcionar no # 360.

No entanto, quero que você entenda que não há como remove() um objeto sem buscá-lo primeiro. Isso porque remove() tem semânticas como exclusão em cascata e remoção de coleção que dependem de ter o estado da entidade na sessão.

Se você realmente precisa ser capaz de excluir uma entidade sem buscá-la, você deve usar StatelessSession.delete() ou uma consulta HQL delete .

PS @ Xset-s obrigado por relatar isso, foi um grande descuido da minha parte

Não há problema, obrigado pela sua resposta detalhada sobre a operação de remoção e por uma solução muito rápida. Estou conduzindo experimentos agora e reescrevendo meu aplicativo do lado do servidor usando sua nova biblioteca incrível, então é fácil para mim detectar alguns problemas complicados, que só poderiam ser capturados somente assim (ou usando um grande número de testes 😄)

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

DavideD picture DavideD  ·  31Comentários

gavinking picture gavinking  ·  6Comentários

akoufa picture akoufa  ·  30Comentários

gavinking picture gavinking  ·  23Comentários

markusdlugi picture markusdlugi  ·  30Comentários