HSEARCH 700061:使用 Hibernate Search 索引枚举列表 6

HSEARCH 700061: Index a list of enums with Hibernate Search 6

我是 Hibernate Search 6 世界的新手,我想在我的实体中索引一个枚举列表,但不幸的是我得到了这个错误

HSEARCH700061: Unable to index-embed type 'com.commons.enums.B

@Entity
@Indexed
public class A {
    @IndexedEmbedded
    @ElementCollection
    @CollectionTable(name = "A_B", joinColumns = @JoinColumn(name = "A_ID"))
    @Enumerated(EnumType.STRING)
    private List<B> b;
}

public enum B {
TEST1,
TEST2,
TEST3
}

谁能帮帮我

@Entity
@Indexed
public class A {
    @GenericField
    @ElementCollection
    @CollectionTable(name = "A_B", joinColumns = @JoinColumn(name = "A_ID"))
    @Enumerated(EnumType.STRING)
    private List<B> b;
}

public enum B {
TEST1,
TEST2,
TEST3
}

b.should(f.match().field("b").matching(B.valueOf(keyWord)));

@IndexedEmbedded 在您的情况下没有意义,因为它应该嵌入目标类型的字段,并且您的枚举类型本身不定义字段(例如,通过 @FullTextField 在其属性上) .

你想要的只是在你的实体中定义一个字段A:

@Entity
@Indexed
public class A {
    @KeywordField // Replace @IndexedEmbedded with this
    @ElementCollection
    @CollectionTable(name = "A_B", joinColumns = @JoinColumn(name = "A_ID"))
    @Enumerated(EnumType.STRING)
    private List<B> b;
}

public enum B {
TEST1,
TEST2,
TEST3
}