매우 기본적인 FieldBridge
구현이 작동하지 않는 것 같습니다. 색인 생성 프로세스가 @FieldBridge
주석을 완전히 무시하는 것처럼 보입니다.사용자 정의 FieldBridge 구현으로 필드를 찾을 수 없습니다.
public class LocalisedInformationBridge implements FieldBridge {
@Override
public void set(String name, Object value, Document document, LuceneOptions luceneOptions) {
luceneOptions.addFieldToDocument(name + ".test", "test", document);
}
}
엔티티를 @FieldBridge
주석과 : 여기
@OneToMany(mappedBy = "product")
@MapKey(name = "languageCode")
@IndexedEmbedded
@FieldBridge(impl = LocalisedInformationBridge.class)
private Map<String, LocalisedProductInformation> localisedProductInformation;
포함 된 개체 : 나는 localisedProductInformation.test
필드에서 검색 할 때
@ManyToOne
@JoinColumn(name="productId")
@ContainedIn
private Product product;
, 난 예외 발생 :
org.hibernate.search.exception.SearchException는 : 필드를 localisedProductInformation.test
다음
것은 내가 어떻게 색인있어 데이터를 찾을 수 없습니다가 :
FullTextEntityManager fullTextEntityManager =
Search.getFullTextEntityManager(entityManager);
fullTextEntityManager.createIndexer().startAndWait();
이상한 것은이 때 I LocalisedInformationBridge
클래스의 set
메서드에 중단 점을 넣으면 디버거가 프로그램 실행을 중지하지 않습니다. 내가 여기서 빠져있는 뭔가가 아주 명백한가요?
경로에 있는지,로드 중입니까? 메시지를 인쇄하는 기본 생성자와 같은 무언가를하십시오. 이 방식으로 적어도로드되고 있음을 알 수 있습니다. – efekctive
로그에 모든 엔티티가 다시 색인되었다는 메시지가 표시되며 생성자에서 메시지를 인쇄하면 모든 엔티티에 대해 볼 수 있습니다. – fuudge
컨테이너가 구현 내용을 어떻게 알 수 있습니까? 그 색인에 대한거야? – efekctive