Tyson,
Please lets keep this discussion in
http://forum.hibernate.org/viewtopic.php?t=926452. I don't know where to answer else ;-)
I've just indicated there that Hibernate's JTATransaction (and thus Spring's HibernateTransactionManager) already implements the pattern you propose: Participate in an existing JTA transaction, create a new one else.
The problem is that in the latter case, Hibernate tries to check the SQL warnings via Connection.getWarnings: Unfortunately, WebLogic's JTA is so restrictive that it doesn't even allowing for getWarnings after a transaction commit!
Juergen