有了jOOQ惊人的多集算子,我们能够查询嵌套列表并将其映射到pojo对象。现在,我试图找到一种方法来同时映射单个嵌套对象。例如,我有一个组合的自定义pojo类,如:
public class CourseComposite {
private String courseName;
private Teacher teacher;
private List<Student> students;
...
}
我想在一个步骤中查询并获取它。因此,我目前的工作解决方案是:
static final List<? extends Field<?>> TEACHER_SUB_COLUMNS = Arrays.stream(TEACHER.fields()).map(f -> f.as("teacher." + f.getName())).collect(toList());
List<CourseComposite> getCourses() {
return this.ctx()
.select(COURSE.NAME.as("courseName"))
.select(TEACHER_SUB_COLUMNS)
.select(multiset(selectFrom(STUDENT).where(STUDENT.ID_COURSE.eq(COURSE.ID))).as("students"))
.from(COURSE).innerJoin(TEACHER).on(COURSE.ID.eq(TEACHER.ID_COURSE))
.where(...)
.fetchInto(CourseComposite.class);
}
这包括一个预初始化的字段列表TEACHER_SUB_COLUMNS
,其目的是以某种方式告诉JOOQ从“教师”映射教师对象。*”列。
我现在想知道在这方面是否有更直观的解决方案。我曾尝试使用row运算符,但到目前为止没有找到有效的解决方案。
例如
List<CourseComposite> getCourses() {
return this.ctx()
.select(COURSE.NAME.as("courseName"))
.select(TEACHER_SUB_COLUMNS)
.select(row(TEACHER.fields()).as("teacher"))
.select(multiset(selectFrom(STUDENT).where(STUDENT.ID_COURSE.eq(COURSE.ID))).as("students"))
.from(COURSE).innerJoin(TEACHER).on(COURSE.ID.eq(TEACHER.ID_COURSE))
.where(...)
.fetchInto(CourseComposite.class);
}
也许有人给了个提示
您可能正在寻找功能请求#4727,其中Table
Result<Record3<String, TeacherRecord, Result<StudentRecord>>> result =
ctx().select(COURSE.NAME, TEACHER, multiset(...))
.from(...)
.fetch();
从jOOQ 3.16开始,还没有这样的便利(尽管这正在进行中)。
我正试图用jooq编写这个查询 我尝试了几件事,但没有成功。到目前为止,我只得到 如何将num列添加到结果中?感谢您的帮助。
jOOQ可以将查询结果映射到POJO中的多个嵌套列表吗?例如,我有一个POJO VM,它代表一个虚拟机。它具有'networks'属性,这是一个类型为network的列表。它还有一个'hdds'属性,这是一个类型为'hdd'的列表。该查询连接VM、HDD和Networks表。我是否可以“获取”到vm.class并期望jOOQ“做正确的事情”?
让我们考虑一下这些帖子的集合。每个帖子都有一个评论数组,每个评论都有一个字符串数组,带有键“likes”,表示喜欢该评论的用户。 如何使用mongoose检查用户是否喜欢具有给定ID的评论?
尊敬的弹性搜索专家, 我在查询嵌套对象时遇到问题。允许使用以下简化映射: 并将一些文档放在索引中: 现在我想执行这样的查询: 因此,我想得到匹配的公司与数量匹配的文件。因此,上面的查询应该会告诉我: 以下查询: 应该给我所有公司分配到一个文件,其标题包含“GPU”与匹配的文件数量: 如果表现良好,是否有可能实现这一结果?我显然对匹配的文档不感兴趣,只对匹配文档和嵌套对象的数量感兴趣。 谢谢你的帮助
问题内容: 这是我在elasticsearch中存储在索引上的数据类型。我必须找到包含主要成分牛肉(且重量小于1000)和成分-(辣椒粉且重量小于250),(橄榄油和重量小于300)以及所有其他成分类似的食谱。 索引的映射是 我的查询是 但这给了Null。有人可以帮我吗?我认为我没有正确使用嵌套查询 问题答案: 试试这个:
问题内容: 我有一个如下所示的elasticsearch索引集合, 现在,我需要通过匹配其值来搜索文档。(是一些字段,其值存储在其中)对于字段,如果与上面的文档匹配。 我尝试将其映射为嵌套对象,但是无法编写查询来搜索2个或更多匹配其各自值的查询。 问题答案: 这就是我要做的。您需要通过(或)两个嵌套查询对每个条件对进行AND 运算,因为您要匹配同一父文档中的两个不同的嵌套元素。