Я использую Spring Data JPA и HSQLDB с OpenJPA в качестве поставщика JPA.
Созданы 2 тестовых класса (SpringBootTest
), которые выполняются один за другим, оба используют один и тот же репозиторий для сохранения (используя save()
из CrudRepository
) сущностей.
@Entity(name = "theentity")
public class TheEntity {
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Id
private int id;
}
@Bean
public PlatformTransactionManager transactionManager() {
final JpaTransactionManager tm = new JpaTransactionManager();
tm.setEntityManagerFactory(entityManagerFactory());
return tm;
}
Проблема в том, что когда я запускаю второй тестовый класс, я ожидаю очистить постоянство, включая начальное значение столбца identity
.
Но вышеописанного не происходит.
При использовании спящего режима добавление аннотации:
@Transactional(propagation = Propagation.NOT_SUPPORTED)
выше тестовый класс делает всю работу за меня (откаты), к сожалению, аннотация ничего не делает с OpenJPA.
Есть ли альтернативный метод для этого? Может быть, нужно добавить какое-то свойство внутри persistence.xml
или что-то еще в TransactionManager
bean?