Версия:Невозможно угадать FieldBridge в поиске 5.5. Неиндексированные Поля
- Hibernate-Core: 5.2.5.Final
- Hibernate-Поиск: 5.5.5.Final
Имея следующие отображения:
@Indexed
@Entity
@Table(name = "scanresult")
public class ScanResult
{
@Id
private ScanResultKey id;
@Field
@Column(name = "name")
private String name;
}
@Embeddable
public class ScanResultKey implements Serializable
{
@ManyToOne
@JoinColumn(name = "eA", referencedColumnName = "id")
private EntityA entA;
//others...
}
В предыдущих сообщениях я читал, что это было проблемой в Search 4.4
(при наличии составных идентификаторов и внешних связей), но это должно быть исправлено в 5.5
. По-видимому, это моя вина. Но я не могу понять, что я мог сделать неправильно
Исключение:
org.hibernate.search.exception.SearchException: HSEARCH000135: Unable to guess FieldBridge for id in entities.keys.ScanResultKey
Примечание: мне нужно только одно поле (name
) индексироваться
Не могли бы вы указать, какие Я поступаю неправильно?
Основная проблема заключается в предположении, что вам не нужно использовать поле FieldBridge. Можете ли вы указать пальцем на то, что привело вас к этому недоразумению? Я был бы рад попытаться улучшить документацию и сообщение об ошибке. – Sanne
@ Спасибо за ваш ответ.Больше я глуп, а не проблема с документацией. Моя мысль заключалась в том, что Composite Key Class «Serializable», «Hibernate Search» может писать/воссоздавать его в/из индекса Lucene. И после того, как я пришел с этим решением, я понял, что мое предположение было неправильным. Но я не эксперт никоим образом, поэтому эту мысль не стоит принимать во внимание. Еще раз спасибо, Sanne – Eugene
Хорошо, спасибо за отзыв! Я по-прежнему вижу, можем ли мы улучшить ясность сообщения об ошибке. – Sanne