AFAIK para remover essas consultas extras, remova todos os seus modificadores do seu
@Transactional
anotações. O preço que você paga para restringir seu nível de isolamento a READ_COMMITED
é que o Hibernate precisará realizar consultas extras para determinar se o banco de dados está em um estado sujo. Para 90% dos casos, esses modificadores são desnecessários. O Hibernate é muito bom para garantir que seus dados estejam limpos sem que você tente adicionar essas restrições. Se for absolutamente necessário para você garantir que seu isolamento seja
READ_COMMITTED
, você não pode fazer nada sobre as consultas extras. Movendo para uma
StatelessSession
apenas para se livrar dessas consultas é uma má ideia exatamente pelo motivo que você apontou. Realmente, a única razão válida para usar uma StatelessSession
é para grandes inserções em lote de dados que você sabe que não serão lidos enquanto a inserção estiver ocorrendo.