3
我正在尝试为部分由抽象类组成的模型创建lucene索引。比方说,我想索引类A,它有一个方法返回一个B类元素的列表,它有一个抽象类C的对象,它有一个抽象方法getD()来返回一个D类元素的列表。 E类和F类扩展了C类,并且都实现了方法getD(),为此我创建了一个FieldBridge实现(实现StringBridge)以将结果转换为用于索引的文本输出。如何处理@IndexedEmbedded包含路径中的抽象类型?
Hibernate搜索文档并没有详细说明如何处理继承以及它们如何与@IndexedEmbedded注释一起使用。我尝试了只提供c.getD作为includePath的朴素方法,希望c的子类的getD实现会自动被使用。
org.hibernate.search.SearchException: Found invalid @IndexedEmbedded->paths configured on class A, member vragen: b.c.getD
行的事谁知道如何设置的搜索路径或为了得到由FieldBridge实施为索引创建的字符串改变以任何其他方式的代码:运行服务器时,这将导致以下SearchException A类?代码如下:
@Indexed
public class A {
@IndexedEmbedded(includePaths = { "c.getD" })
public List<B> getB() {
// Method implementation returning a list of B
}
}
public class B{
private C c;
}
public abstract class C{
public abstract List<D> getD();
}
public class E extends C{
@Field
@FieldBridge(impl = DListFieldBridge.class)
public List<D> getD() {
// Method implementation returning a list of D
}
}
public class F extends C{
@Field
@FieldBridge(impl = DListFieldBridge.class)
public List<D> getD() {
// Method implementation returning a list of D
}
}