code: @Override
  	protected void doBegin(Object transactionObject,
  			TransactionDefinition transactionDefinition)
  					throws TransactionException {
  		@SuppressWarnings("unchecked")
  		List<DefaultTransactionStatus> list = (List<DefaultTransactionStatus>) transactionObject;
  		for (PlatformTransactionManager transactionManager : transactionManagers) {
  			DefaultTransactionStatus element = (DefaultTransactionStatus) transactionManager
  					.getTransaction(transactionDefinition);
  			list.add(element);
  		}
  	}
docs: We need to disable transaction synchronization so that the shared
  transaction synchronization state will not collide with each other. BUT,
  for LOB creators to use, we have to pay attention here:
  <ul>
  <li>if the LOB creator use standard preparedStatement methods, this
  transaction synchronization setting is OK;</li>
  <li>if the LOB creator don't use standard PS methods, you have to find
  other way to make sure the resources your LOB creator used should be
  cleaned up after the transaction.</li>
  </ul>