(Curso: Java e JPA: Otimizações com JPA2 e Hibernate , Atividade do modulo 3 - lição 07) Vale salientar que devemos evitar qualquer "trecho de código" que faça algum tipo de alteração quando usamos o @Transactional em find. EX: No find transacional eu aplicar algum calculo de taxas de um produto X. pois quando a transação for finalizada (comitada) o contexto de persistência vai detectar que mudou algo nas entidades (pois elas estão managed), fazendo um update para cada entidade que teve seu estado de fato modificado, Existem algumas soluções para esse problema uma delas é usar readOnly=true no @Transactional, ou trabalhar com entidades não persistíveis.