Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Hibernate salva dados obsoletos com hibernate.jdbc.batch_versioned_data


O driver oracle deve retornar contagens de linhas corretas. Ficarei surpreso se este não for o caso. Você conseguiu confirmar se os resultados do driver estão corretos? Você pode ativar o registro do Hibernate para verificar isso.

Algumas coisas para verificar:

  1. Registre o SQL real que está sendo enviado ao banco de dados e verifique se a coluna de versão é mencionada na cláusula where. Não tenho certeza se os SQLs são registrados pelo log do Hibernate com lotes ativados, você pode ter que recorrer a uma maneira diferente de registrar os SQLs (por exemplo, p6spy)

  2. Se as contagens de linha estiverem sendo retornadas corretamente durante as atualizações simultâneas, o aplicativo está funcionando bem. Confirme isso verificando se os valores da coluna de versão estão atualizados e corrigidos.

Atualizar De acordo com o link a seguir, esse problema estava presente com o driver Oracle até 11g e corrigido na versão 12c

https://hibernate.atlassian.net/browse/HHH-3360

Para versões anteriores do Oracle, há algumas informações adicionais que devem ser úteis, ou seja, uma solução personalizada é fornecida.

Recursos adicionais:https://hibernate.atlassian.net/browse/HHH-5070