Configuração de Spring para banco de dados H2 integrado para testes

Como é a aparência da sua configuração do Spring para testes de integração usando umfonte de dados h2 incorporada e, opcionalmente, JUnit?

Minha primeira tentativa com umSingleConnectionDataSource basicamente funcionou, mas falhou em testes mais complicados onde você precisa de várias conexões ao mesmo tempo ou transações suspensas. Eu acho que h2 emmodo de servidor baseado em tcp pode funcionar também, mas este provavelmente não é o modo de comunicação mais rápido para um banco de dados embutido temporário na memória.

Quais são as possibilidades e suas vantagens / desvantagens? Além disso, como você cria as tabelas / preencher o banco de dados?

Atualização: Vamos especificar alguns requisitos concretos que são importantes para esses testes.

O banco de dados deve ser temporário e na memóriaA conexão provavelmente não deve usar tcp, para requisitos de velocidadeSeria bom se eu pudesse usar uma ferramenta de banco de dados para inspecionar o conteúdo do banco de dados durante a depuraçãoTemos que definir uma fonte de dados, pois não podemos usar a fonte de dados dos servidores de aplicativos em testes unitários