After you pointed me in the right direction, I skimmed through the org.springframework.orm.hibernate3.support.OpenSes sionInViewInterceptor api and also noticed that I had:
in my setup... so I looked to see what that does. Turns out that FLUSH_AUTO does a flush upon completion of any Transaction, hence, I believe the reason that setting singleSession=false works because you don't hit anymore transactions within your session. After reading about the cache not working if you set singleSession=false... I decided to try playing with flushMode.
<property name="flushModeName" value="FLUSH_AUTO" />
The way I read the API... it seems like you want flushMode to be NEVER if your using Transactions (which I am). So I set it to NEVER... however, I then found that I had to add new code to my saveAndUpdate methods which are as follows:
and my FlushMode is set to FLUSH_NEVER on my OSIV. I ended up having to put the manual flush even though it is set to AUTO... it's safe anyway.
This seems to have fixed my problems... however, I haven't done thorough testing yet, so if anyone sees anything wrong with this approach... PLEASE let me know! It seems to me to be the best method that I've seen if I want to go the lazy route of using my Hibernate POJO's as my form backing objects