Trabalhei em um projeto grande em que o arquiteto definiu que deveríamos anotar como NOT_SUPPORTED todos os métodos que fossem apenas uma consulta no banco de dados. Isto sempre funcionou e eu nunca entendi por que funcionava e muito menos o porquê desta decisão dele.
No meu entendimento uma query (sem INSERT, UPDATE ou DELETE) também é uma transação aberta com o banco de dados. Por que isto funciona?
E uma vez que consideramos que, sim, funciona, vocês saberiam dizer por que este arquiteto poderia ter considerado que isto era uma boa prática? Traz alguma melhora de performance ou coisa do gênero?