我有课程,学生,时间表表。
table course(id, name, ....),
table student(id, name, ...),
table schedule(id, c_id, s_id).
现在,我想将时间表表与课程表和学生表左连接。
在jooq中连接这3个表的最佳方法是什么?我假设它是这样的:
TableLike<?> firstjoin = sql
.select()
.from(Tables.SCHEUDLE)
.leftOuterJoin(Tables.COURSE)
.on(Tables.SCHEDULE.CID.eq(Tables.COURSE.ID))
.asTable();
Result<?> result = sql
.select()
.from(firstjoin)
.leftOuterJoin(Tables.STUDENT)
.on(Tables.SCHEDULE.SID.eq(Tables.STUDENT.ID))
.fetch();
当我得到结果时,将结果分为学生对象和课程对象的最佳方式是什么?我的意思是,既然类型是Result?,我们有什么方法可以将结果映射到学生、课程实体中,而不是繁琐地做这样的事情:
for(Record r: result){
Student s = new Student(r.filed(), r.filed()...);
Course c = new Course(r.filed(), r.filed()....)
}
在jooq中连接这3个表的最佳方式是什么?我想这就像[…]
虽然您的查询是正确的,但我不会像您那样加入。您的方法创建了一个派生表,它
相反,只需在一条语句中连接两个表:
java prettyprint-override">Result<?> result = sql
.select()
.from(SCHEUDLE)
.leftOuterJoin(COURSE)
.on(SCHEDULE.CID.eq(COURSE.ID))
.leftOuterJoin(STUDENT)
.on(SCHEDULE.SID.eq(STUDENT.ID))
.fetch();
您可以使用各种记录中的一种。into()方法,例如记录。into(表)
for (Record r : result) {
StudentRecord s = r.into(STUDENT);
CourseRecord c = r.into(COURSE);
}
我的数据库中有一个小特例,我需要从两个具有一对一关系的不同表中获取数据,以获得有用的结果。获取看起来像这样: 当然,我在实际代码中使用了-这只是一个示例。我的问题是是否以及如何将jOOQ中获取的数据写入POJO。我不确定是否有办法让jOOQ为我生成这个POJO,但如果我必须自己编写它,我假设我需要像适配器这样的东西以及像作为数据类型的转换器。 我看到有可能出现RecordMapperProvide
我看到的mysql表如下所示: 用户信息 id |用户id |电话号码|信息|方向|创建于 用户 id |名称 我想'组由'user_messages两次和UNION的结果。我为什么要这么做?因为user_id有时有一个有效的用户ID(不是'-1'),所以我按它分组,如果它有-1,则按phone_number分组。 我也想左加入结果与用户表以获得用户名的情况下user_id设置为一个有效的用户 我
我有一个应用程序正在从jooq切换到jdbc,我使用jdbc创建了一个表,但我需要编辑一些jooq查询来加入它,问题是自动生成的jooq tables类无法识别它,所以有没有办法通过字符串名引用表? 下面是一些示例代码: 我如何在此处加入“连接”表?没有桌子。连接,因为它是以不同的方式创建的。 有很多疑问,所以我们希望根据需要逐步进行转换。 更新:我尝试添加以下内容,并且查询运行,但是我尝试获取的
使用JSF 2.0,我需要显示一个表,其中每一行都包含一个打开弹出窗口的链接。我有两种型号:
我有两个双数组: 我的循环结构如下所示: 我要做的是连续获取项目LatArr[0]和LonArr[0]<这样我就可以在lat1中使用LatArr[0],在lon1中使用LonArr[0]。此外,LatArr[1]应位于lat2,LonArr[1]应位于lon2 但此代码获取LatArr[0]。。[1] 。。和LonArr[0]。。[1] 。。两次每个元素打印两次 任何人都请纠正我的错误,我完全不希
我试图迭代一个ArrayList并使用规则中的jboss drools添加到另一个ArrayList。 我的规则如下。 用口水怎么做?