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

Unable to guess FieldBridge in Search 5.5. Unindexed Fields

版本:

具有以下映射:

@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)被索引

你能指出我做错了什么吗?

好的,由于这个问题在 none 附近引起了人们的兴趣,根据浏览量,这里简要介绍了我(希望)解决问题的方法(如果您了解更多,请指正)

  • 验证模块的版本兼容性

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

Hibernate Search 5.5 works with Hibernate ORM 5.0.x and 5.1.x (NOT with 5.2.x), and with Apache Lucene 5.3.x, 5.4.x and 5.5.x (Not 6.0)

声明者:Sanne

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

  • 创建一个 FieldBridge 用于复合键实现 TwoWayFieldBridge

    public class ScanResultBridge 实现 TwoWayFieldBridge

  • 给Entity添加注解Class,指定Bridge的实现

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