有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

OneToMany字段上的java Hibernate搜索不起作用

以下是我的位置和分类课程:

@Entity
@Indexed
@AnalyzerDef(name = "placeAnalyzer", ...)
public class Place
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(nullable = false, updatable = false)
    private Long id;

    @Column(length = 100, nullable = false)
    @Field
    @Analyzer(definition = "placeAnalyzer")
    private String name;

    @OneToMany(mappedBy = "place", fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
    @IndexedEmbedded
    private Set<Category> categories;

    ...
}

@Entity
@Indexed
public class Category
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(nullable = false, updatable = false)
    private Long id;

    @Column(nullable = true)
    @Field
    @Analyzer(definition="placeAnalyzer")
    private String name;

    @ContainedIn
    @ManyToOne
    @JoinColumn(name="place_id")
    private Place place;
}

以下是我创建查询的方式:

Query searchStringQuery = queryBuilder.keyword()
                    .onFields("name", "location.city", "location.address", "categories.name")
                    .matching(TextUtils.stripAccents(searchString))
                    .createQuery();

然而,当我搜索某些文本时,搜索不会返回结果,这些文本包含在类别表名称字段中。它适用于查询中使用的其他字段。这里怎么了


共 (0) 个答案