Hai bisogno di una transazione di database per leggere i dati?

Quando provo a leggere i dati dal database, almeno usando

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

un’eccezione è che dice che una transazione non è presente.

Quando aggiungo l’annotazione:

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

funziona bene

Tuttavia, poiché la lettura accadrà milioni di volte al secondo per accedere e leggere i dati, voglio assicurarmi che il nostro ambiente non sia intasato inutilmente.

In caso contrario, qual è il costo della creazione di una transazione di sola lettura Propagation.Supports ?

Non posso creare una query sui criteri di ibernazione senza una transazione, in combinazione con Spring?