3.3.4 Proxy de origen de datos preparado para transacción - Reference Documentation
Authors: Graeme Rocher, Peter Ledbrook, Marc Palmer, Jeff Brown, Luke Daley, Burt Beckwith
Version: null
3.3.4 Proxy de origen de datos preparado para transacción
The actual
El dataSource bean is wrapped in a transaction-aware proxy so you will be given the connection that's being used by the current transaction or Hibernate Session if one is active.If this were not the case, then retrieving a connection from the dataSource would be a new connection, and you wouldn't be able to see changes that haven't been committed yet (assuming you have a sensible transaction isolation setting, e.g. READ_COMMITTED or better).The "real" unproxied dataSource is still available to you if you need access to it; its bean name is dataSourceUnproxied.You can access this bean like any other Spring bean, i.e. using dependency injection:
dataSource bean está envuelto en un proxy preparado para la transacción por lo que se le dará la conexión que se utiliza en la transacción actual o la Session Hibernate si está activa.Si esto no fuera el caso, entonces recuperar una conexión desde el datasource sería una nueva conexión, y no sería capaz de ver los cambios que no hayan sido comprometidos aún (suponiendo que tiene un aislamiento de transacción razonable, por ejemplo, READ_COMMITTED o mejor).El dataSource real fuera del proxy sigue estando disponible si necesita tener acceso a él; su nombre de bean es dataSourceUnproxied.Se puede acceder a este bean como a cualquier otro bean de Spring, es decir, mediante inyección de dependencias:class MyService { def dataSourceUnproxied
…
}
or by pulling it from the
o solicitándolo al ApplicationContext:
ApplicationContext:def dataSourceUnproxied = ctx.dataSourceUnproxied

