0

hibernate-search 6 中有没有办法投影多个字段并将它们直接映射到 POJO 对象,或者我应该自己处理它。我不确定我是否理解文档中描述的复合方法。例如我可以做这样的事情:

SearchResult<List<?>> result = searchSession.search(indicies)
.select(f -> f.composite(f.field("field1"), f.field("field2"), f.field("field3"),f.field("field4")))
.where(SearchPredicateFactory::matchAll)
.fetch(20)

然后我可以手动将返回的字段列表映射到 POJO。但是有没有更奇特的方法来做到这一点,而无需手动循环遍历字段列表并将它们设置为 POJO 实例?

4

1 回答 1

0

目前,只有相当简单的 POJO 才能投影到 POJO,最多具有三个字段,使用文档中显示的语法。对于比这更多的字段,您必须通过List.

如果您使用的是 Elasticsearch 后端,理论上您可以将文档作为 a 检索JsonObject,然后使用 Gson 将其映射到 POJO。

计划提供更多奇特的解决方案,但我们还没有。

于 2021-02-16T16:04:27.980 回答