我需要在 Quarkus 应用程序中清除我的数据库表。我可以通过调用 PanacheEntity
为扩展 PanacheEntityBase
或 entity.deleteAll()
的实体实现这一点。如何清除可嵌入类型的表格?
答案 0 :(得分:0)
一种可能的解决方案是使用带有 Flyway 的 JUnit 5 扩展来管理您的架构,并在每次测试时重置数据库的状态
您可以在此处找到扩展程序:https://github.com/radcortez/flyway-junit5-extensions/
这里的 Quarkus 示例:https://github.com/radcortez/flyway-junit5-extensions/tree/master/examples/quarkus
答案 1 :(得分:0)
所以我能够自己解决问题,这就是我所做的:
Course
和一个可嵌入的 CourseDescription
。 CourseDescription
嵌入在 Course
中
示例:@Embedded
@ElementCollection
public List<CourseDescription> courseDescriptions;
我的测试班:
@PersistenceContext
EntityManager entityManager;
...
@AfterEach
@Transactional
public void tearDown(){
Query query = entityManager.createNativeQuery("DELETE FROM course_description")
.setHint(COMMENT, "Custom cleanup for embeddable type CourseDescription");
query.executeUpdate();
Course.deleteAll();
}