Overriding onSetUpBeforeTransaction might be what you're looking for. http://static.springframework.org/spring/docs/2.0.x/api/org/springframework/test/AbstractTransactionalSpringContextTests.html
Matt On Mon, Jul 28, 2008 at 5:15 AM, Miguel Romero <[EMAIL PROTECTED]> wrote: > //users@appfuse.dev.java.net > > hi, > > i´m trying use "org.springframework.jdbc.datasource.DriverManagerDataSource" > to around my problem of connect with distinct users in my datasource. > > reource.xml > > <bean id="myDriverManagerDataSourceUrl" > class="org.springframework.jdbc.datasource.DriverManagerDataSource" > destroy-method="close"> > <property name="driverClassName" value="${jdbc.driverClassName}"/> > <property name="url" value="${jdbc.url}"/> > </bean> > > <bean id="dataSource" > class="org.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter"> > <property name="targetDataSource" > ref="myDriverManagerDataSourceUrl"/> > <property name="username" value="${jdbc.username}"/> > <property name="password" value="${jdbc.password}"/> > </bean> > > dao.xml > > <bean id="sessionFactory" > class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> > <property name="dataSource" ref="dataSource"/> > <property name="configLocation" > value="classpath:hibernate.cfg.xml"/> > <property name="hibernateProperties"> > <value> > hibernate.dialect=${hibernate.dialect} > hibernate.query.substitutions=true 'Y', false 'N' > hibernate.cache.use_second_level_cache=true > > hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider > </value> > <!-- Turn batching off for better error messages under > PostgreSQL --> > <!-- hibernate.jdbc.batch_size=0 --> > </property> > </bean> > > now, my principal problem is when i try to pass the test. > > public void testGetTesquemasByTuser() throws Exception { > > UserCredentialsDataSourceAdapter userCredentialsDataSourceAdapter = > > (UserCredentialsDataSourceAdapter)applicationContext.getBean("dataSource"); > > > userCredentialsDataSourceAdapter.setCredentialsForCurrentThread("tuser", > "tuser"); > setDataSource(userCredentialsDataSourceAdapter); > > List<Tesquema> ltesquema = > tesquemaUniversalDao.getAll(Tesquema.class); > log.debug("tusers obtenidos =" + ltesquema.size()); > > assertNotNull(ltesquema); > log.debug("esquema 0 =" + ltesquema.get(0)); > //assertTrue(ltesquema.get(0).getUsername().equals("tuser")); > assertTrue(ltesquema.size() == 1 ); > > > userCredentialsDataSourceAdapter.removeCredentialsFromCurrentThread(); > } > > I try to change the dataSource > "setDataSource(userCredentialsDataSourceAdapter);" but it doesn`t work me. > only works if i invoke toTearDown and SetUp before of getAll > > how can i change the actua datasource in my transacction ? or better, how > can i start a new transaction with a new datasource before of a unit test? > > thanks! >