I'm constructing an application that at the present time and foreseeable
future, will just be reading from a database (Oracle) and serializing
those results to XML/JSON.  It will not be writing or modifying the
database.

I have a Controller layer, and I have a DAO layer.  I'm going to
assemble a service layer between those two, but I'm wondering whether I
should specify transactional semantics in that layer.  I can put
"readOnly" on it (using Spring's "Transactional" annotation), or perhaps
set the transaction attribute to "NOT_SUPPORTED".

I think I'd prefer to have the service layer be transactional, even if
it's only read-only, but I'm wondering what the impact will be either
way.  Will this give me overhead I don't need?  Will NOT using
transactional semantics possibly create some race condition that might
bite me somehow?

Reply via email to