HibernateSearch集成测试不起作用

我在SpringBoot-Backend中使用HibernateSearch。这些测试在H2-Database上运行,我尝试使用集成测试来测试服务类。如果我用Postman测试控制器,一切正常(使用postgres-database),但是在下面的测试中,总是返回一个空列表。

    @Transactional
    public List<House> searchHouses(String searchString) {
        FullTextEntityManager fullTextEntityManager
            = Search.getFullTextEntityManager(entityManager);

        QueryBuilder queryBuilder = fullTextEntityManager.getSearchFactory()
            .buildQueryBuilder()
            .forEntity(House.class)
            .get();

        Query descriptionQuery = queryBuilder
            .keyword()
            .onFields("description","city","name")
            .matching(searchString)
            .createQuery();

        FullTextQuery jpaQuery
            = fullTextEntityManager.createFullTextQuery(descriptionQuery,House.class);

        return jpaQuery.getResultList();
    }
    @Test
    @Transactional
    @WithMockUser(value = DEFAULT_LOGIN)
    public void searchHouse() throws Exception {
        House house = houseRepository.createHouse();

        assertThat(houseService.searchHouses("house1")).hasSize(1);
    }

我已经阅读了这篇文章:How to test services that use Hibernate Search?,但没有帮助。该实体肯定存储在数据库中,因为以下检查有效:

assertThat(houseService.getallHouses()).hasSize(1);

所以我不知道为什么HibernateSearch索引总是为空,也许我错过了一些配置?

在测试日志中,出现以下错误消息:

"ERROR","logger_name":"LuceneBackendQueuetask","message":"HSEARCH000072: Couldn't open the IndexWriter because of previous error: operation skipped,index ouf of sync!"
wxh19871203 回答:HibernateSearch集成测试不起作用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3114880.html

大家都在问