java - 列表中的搜索字段 @IndexedEmbedded
问题描述
我有一个实体,它有一个实体列表,我添加@IndexedEmbedded
到这个列表中以便能够搜索到它。所以我想搜索所有具有 id 123 且属性 x 等于给定值的实体。我尝试使用下面的代码,但我有这个错误
在 com.xx.xx.AEntity 中找不到字段 bEntity.x
@Entity
@Indexed
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class AEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Field
private String id;
@IndexedEmbedded
@ElementCollection
private Set<BEntity> bEntity;
}
@Entity
@IdClass(BPK.class)
public class BEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Field(name = "x_number")
private String x;
@Id
@Field(name = "y_number")
private String y;
}
QueryBuilder queryBuilder = getFullTextEntityManager().getSearchFactory().buildQueryBuilder().forEntity(AEntity.class).get();
Query query = queryBuilder.bool()
.must(queryBuilder.keyword().onField("id").matching("123").createQuery())
.must(queryBuilder.keyword().onField("bEntity.x").matching(str).createQuery())
.createQuery();
解决方案
你的领域被称为bEntity.x_number
,而不是bEntity.x
:
@Field(name = "x_number")
这就是您收到此错误的原因。
在您的查询中使用bEntity.x_number
而不是,bEntity.x
您应该没问题。
推荐阅读
- php - 根据 WooCommerce 中的成本更改运输方式标签名称
- python - 确定哪个打印语句在终端中产生一行输出
- javascript - 如何避免 Jquery 将 `?` 翻译成 `%3F`
- kubernetes - 如何为我的整个集群创建一个入口,该入口可以自动使用 kube-dns 来实现到内部服务的基于路径的路由?
- css - 通过 pandoc&wkhtmltopdf 从 mkd 生成 pdf 时如何使用 css 设置页面/文档边距?
- c++ - 分支可能性提示是否通过函数调用进行?
- ffmpeg - 如何使用 ffmpeg 调整 h264 视频的大小?
- flutter - 如何从 Firebase 存储中获取图像?
- python - python tic tac toe 游戏停止和值检查函数返回错误
- angular - 打字稿打字问题通过打字将空对象添加到数组中