Самостоятельное соединение (иерархические данные) в Hibernate-поиске - PullRequest
0 голосов
/ 23 января 2020

У меня есть два поля в сущности:

  • id
  • parentId

Я хочу самообъединение для получения (иерархических данных) дети родительского идентификатора. Что-то вроде oracle Иерархические запросы :

enter image description here

1 Ответ

0 голосов
/ 23 января 2020

На данный момент Hibernate Search предоставляет возможности соединений во время выполнения.

Если ваша цель - упорядочить результаты «первыми родителями», я думаю, что вы сможете создать метод получения, который создает строку, аналогичную « rootId.grandParentId.parentId.thisId "и индексировать результат этого метода получения. Затем вы можете отсортировать по этой строке. Это, безусловно, было бы хаком, но это может сработать.

В качестве альтернативы, вы можете использовать собственные возможности объединения Lucene или Elasticsearch в Hibernate Search, но для этого потребуются обширные знания Lucene или Elasticsearch.

С помощью Hibernate Search 5 вы можете реализовать его для Lucene, но, вероятно, не для Elasticsearch. К сожалению, документация по функциям Lucene недостаточна.

С помощью Hibernate Search 6 вы сможете реализовать его в обоих случаях. Вам понадобятся:

...