【发布时间】:2016-11-18 00:32:53
【问题描述】:
我有 COURSE、STUDENT、SCHEDULE 表。
table course(id, name, ....),
table student(id, name, ...),
table schedule(id, c_id, s_id).
现在我想离开加入日程表与课程和学生表。
问题(1):
在 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();
问题(2):
当我得到结果时,将结果拆分为 Student 对象和 Course 对象的最佳方法是什么?我的意思是,既然类型是 Result?,我们有什么办法可以将结果映射到学生、课程实体中,而不是像这样乏味地做这样的事情:
for(Record r: result){
Student s = new Student(r.filed(), r.filed()...);
Course c = new Course(r.filed(), r.filed()....)
}
【问题讨论】: