无法在Search 5.5中猜测FieldBridge。无索引字段

时间:2016-12-27 12:25:24

标签: java hibernate hibernate-search

版本:

  • Hibernate-Core: 5.2.5.Final
  • Hibernate-Search: 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中的一个问题(当有复合ID和外来关系时),但这应该在5.5中修复。显然这是我的错。但我无法弄清楚我能做错什么

例外:

org.hibernate.search.exception.SearchException: HSEARCH000135: Unable to guess FieldBridge for id in entities.keys.ScanResultKey

注意:我只需要将一个字段(name)编入索引

请指出我做错了什么?

1 个答案:

答案 0 :(得分:2)

好的,既然这个问题几乎没有兴趣,根据观点统计,这里简单地说就是我管理(希望)解决问题的方法(如果你知道的话,请纠正我)

  • 验证模块'版本兼容性

根据this问题的评论者之一,并非所有(甚至最新的)版本都相互兼容。例如:

  

Hibernate Search 5.5适用于Hibernate ORM 5.0.x和5.1.x(不是   使用5.2.x),以及Apache Lucene 5.3.x,5.4.x和5.5.x(非6.0)

陈述:Sanne

这不是解决此特定问题的方法,但可能会从其他问题中解决

  • 为复合键实现创建FieldBridge TwoWayFieldBridge

    公共类ScanResultBridge实现TwoWayFieldBridge

  • 向Entity Class添加注释,指定Bridge的实现

    @FieldBridge(impl = ScanResultBridge.class) 私人ScanResultKey id;