I'm unit testing my DAOs using spring. I am using JPA + Hibernate.

For my tests i'm using the following hsqldb version:

<dependency>
    <groupId>hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>1.8.0.10</version>
    <scope>test</scope>
</dependency>

And here's my persistence.xml for my unit tests:

   <persistence-unit name="unit-test-pu" transaction-type="RESOURCE_LOCAL">   
      <properties>
         <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
         <property name="javax.persistence.jdbc.user" value="sa"/>
         <property name="javax.persistence.jdbc.password" value=""/>
         <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:testdb"/>
         <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
         <property name="hibernate.archive.autodetection" value="class"/>
         <property name="hibernate.show_sql" value="true"/>
         <property name="hibernate.use_sql_comments" value="true"/> 
         <property name="hibernate.format_sql" value="true"/>
         <property name="hibernate.hbm2ddl.auto" value="create"/>
      </properties>      
   </persistence-unit>

This is my test class:

@ContextConfiguration("/spring/test-context.xml")
@TestExecutionListeners({TransactionalTestExecutionListener.class})
@Transactional
public class BaseDaoTestCase extends AbstractJUnit4SpringContextTests { 

    @Autowired
    private MockEntityDao dao;

    @Test
    public void testSave_success() {
        MockEntity e = new MockEntity();
        dao.save(e);
        assertNotNull(e.getId());
    }
}

Note: the idea is to test my DAOs against an in memory HSQLDB instance. Each test method runs within a transaction manag

Edit
Report