Dieser Fehler tritt bei this.itemRepository.deleteAll()
auf, wenn sampleTest()
Methode ausgeführt wird.Kein EntityManager mit aktueller Transaktion für aktuellen Thread verfügbar
@ExtendWith(SpringExtension.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@SpringBootTest
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@Rollback(false)
public class ScheduleTests {
private static final Logger LOGGER = LoggerFactory.getLogger(ScheduleTests.class);
@Autowired
private ScheduleRepository scheduleRepository;
@Autowired
private ItemRepository itemRepository;
@Autowired
private ItemQualifierRepository itemQualifierRepository;
@Autowired
private MappingRepository mappingRepository;
@BeforeAll
public void setUp() {
restoreInitialData();
LOGGER.info("Initial data restored");
}
@Test
public void sampleTest() {
File feed = new File("target/test-classes/TestFeedOK.json");
Feed.ingest(feed);
LOGGER.info("Feed {} ingested", feed.getName());
}
private void restoreInitialData() {
this.itemRepository.deleteAll();
this.mappingRepository.deleteByTableName("event");
}
}
Hinzufügen @Transactional
Anmerkung zu restoreInitialData()
löst nicht das Problem - https://stackoverflow.com/a/32552558/3536552
Wissen Sie, wie man es beheben?
haben Sie versucht, die ganze Klasse zu machen '@ Traansactional'? – pvpkiran
@pvpkiran Ja, ich habe versucht, aber es hat nicht geholfen – TheChosenOne
welche Version von Spring Boot verwenden Sie. Weil in der neuesten Version 'AutoConfigureTestDatabase' veraltet ist – pvpkiran