让我们提供课堂示例:
抽象类SuperParent { superParentField1; }
抽象类Parent扩展SuperParent { parentField1; }
class ImplementaingClass1 extends Parent { //我只想索引parentField1 }
类ImplementingClass2扩展Parent { //我只想索引superParentField1 }
与这些不同。
在hibernate-search中处理此问题的最佳方法是什么?所以我可以在任何给定的类中搜索任何字段。我是否需要覆盖实现类的字段并在那里添加注释?没有别的办法吗?
答案 0 :(得分:2)
覆盖getter并在重写的getter上添加@Field
注释:
abstract class SuperParent { superParentField1; }
abstract class Parent extends SuperParent { parentField1; }
@Indexed
class ImplementingClass1 extends Parent {
@Override
@Field(... stuff ...)
SomeType getParentField1() {
return super.getParentField1();
}
}
@Indexed
class ImplementingClass2 extends Parent {
@Override
@Field(... stuff ...)
SomeType getSuperParentField1() {
return super.getSuperParentField1();
}
}
或者,使用programmatic mapping。如果你有多个具有这种约束的字段,这将特别相关。