Speculation: do you really need to test the transaction? Or just the business logic around the db access?
Because if so, you could try writing the unit test with EasyMock (or similar), avoiding the access to the database yet testing the functionality