Я открываю еще одну тему о Hibernate Search ...
Теперь я имею дело с отображением:
@Field
@ElementCollection
@CollectionTable(name = "product_instance", joinColumns =
@JoinColumn(name = "doc_uuid"))
@Column(name = "productInstance")
@org.hibernate.annotations.Cache(
usage = CacheConcurrencyStrategy.READ_WRITE
)
private List<String> productInstanceIds;
.
вот как я строю запрос:
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
QueryBuilder b = fullTextEntityManager.getSearchFactory()
.buildQueryBuilder()
.forEntity(DocVersion.class)
.get();
builder.add(b.keyword().onField(disjMap.get(...)).matching(...)
.createQuery(), BooleanClause.Occur.SHOULD);
List results = fullTextEntityManager.createFullTextQuery(builder.build(), DocVersion.class)
.getResultList();
и запрос просто в порядке.
Теперь моя проблема связана с @CollectionTable
.Мне нужно индексировать и запрашивать элементы из этой «таблицы».Я знаю, что проблема где-то в этом отображении, потому что я получаю 0 результатов (а не ошибку), когда я сохраняю там аннотацию @Field
, но когда я ее удаляю, я получаю ряд результатов о подпорках других сущностей.
Таким образом, он не выдаст ошибку, но ничего не вернет.И я имею в виду, что я использую один и тот же запрос в обоих сценариях, так что это должно быть что-то с этим отображением.
Поэтому мой вопрос заключается в том, как сделать lucene index @CollectionTable
?
hibernate-поиск:5.9.3. Финал
Спасибо!