【问题标题】:Hibernate Search: Inheritance ModelsHibernate Search:继承模型
【发布时间】:2012-08-19 13:25:46
【问题描述】:
我计划在我的模型上使用 Hibernate Search 进行全文搜索,我担心我是否可以继续使用 InheritanceType.SINGLE_TABLE 进行模型层次结构,或者我是否必须手动创建一个大平面模型。基本上我有两个要求:
- 能够在层次结构中对具体模型的所有子模型执行搜索
- 能够对基本模型的公共字段和具体子模型的字段执行搜索
不幸的是,该参考文献没有提及继承,而只是提及嵌入和关联的对象。
【问题讨论】:
标签:
hibernate
orm
hibernate-search
【解决方案1】:
JPA 继承模型在 Hibernate Search 中不起作用,正如前面的答案所示,它甚至是默认值。
另一方面,Lucene 文档是一个扁平结构,基本上是字段名称到值的映射。在您要索引的字段之上,Hibernate Search 添加实体的唯一主键及其类名。当您将搜索限制在某个类时使用后者。
【解决方案2】:
没问题,因为“SINGLE_TABLE”是 InheritanceType 的默认值,并且支持您指定的内容。
问候,