在我的项目中,我有这个POJO课程:
CourseBean.java:
@Expose
private Integer id;
@Expose
private String title = "";
@Expose
private String description = "";
@Expose
ArrayList<SubjectBean> alSubjects = new ArrayList();
它包含了Course表的列和一个arraylist,它们会有一些代表本课程主题的pojos。
为了填补这个pojo,我使用的程序如下:
可以优化该程序吗?也许只有一个SQL句子?。
---------------------------------- EDIT ------------ ------------------------
我将使用@Patrick Piatkowski sugested
的陈述SELECT * FROM Course
JOIN Subject
ON Course.id = Subject.course_id
WHERE /* Your filters here */
但现在这引出了另一个问题。当我迭代结果集时,每一行的路线列都是相同的。
this.setId(oResultSetCourse.getInt("id")); this.setTitle(oResultSetCourse.getString("title")); this.setDescription(oResultSetCourse.getString("description"));
这些应该只填充一次,同时每次迭代都应填充主题的pojo
处理此问题的最佳方法是什么?
答案 0 :(得分:0)
您可以使用加入:
SELECT * FROM Subject
WHERE course_id IN
(SELECT course_id FROM Course
WHERE /* Your filters here */)
或者
https://www.example.com
第二种方法的优点是,您只能从Subject获取列,同时您还可以使用第一个语句从Course获取列。