В моем тестовом коде мне нужно иметь пустую / пустую базу данных для каждого метода.
Я бы запустил тестовые методы внутри транзакции (и откат в конце каждого метода).Это обычный подход.Я не вижу смысла в совершении транзакции и записи данных в базу данных, если вы УДАЛИТЕ их сразу после этого.Только не фиксируйте.
Альтернативой (не исключительной) будет использование DbUnit для перевода базы данных в известное состояние перед выполнением теста.При этом вам обычно не нужно убирать это.
Другой вариант - использовать необработанный JDBC для удаления базы данных, если она существует, и затем JPA пересоздает всю базу данных.Будет довольно медленно, хотя.