Você precisa de uma transação de banco de dados para ler dados?

Quando tento ler dados do banco de dados, pelo menos usando

((Session)em.getDelegate()).createCriteria()

uma exceção é lançada dizendo que uma transação não está presente.

Quando adiciono a anotação:

@Transactional(
    value = SomeClass.TRANSACTIONAL_MANAGER, 
    propagation = Propagation.SUPPORTS, 
    readOnly = true
)

Funciona bem.

No entanto, como a leitura ocorrerá milhões de vezes por segundo para acessar e ler dados, quero garantir que nosso ambiente não esteja obstruído desnecessariamente.

Caso contrário, qual é o custo da criação de um somente leituraPropagation.Supports transação?

Não posso criar uma consulta de critérios de hibernação sem uma transação, em combinação com o Spring?

questionAnswers(2)

yourAnswerToTheQuestion