gpt4 book ai didi

java - 用单个 SQL 语句填充一个包含另一个 pojo 的数组列表的 pojo,并正确迭代结果集

转载 作者:行者123 更新时间:2023-11-29 21:02:26 25 4
gpt4 key购买 nike

在我的项目中,我有这个 POJO 类:

CourseBean.java:

@Expose
private Integer id;
@Expose
private String title = "";
@Expose
private String description = "";
@Expose
ArrayList<SubjectBean> alSubjects = new ArrayList();

它包含类(class)表的列和一个数组列表,其中另一个 pojo 代表本类(class)的主题。

为了填充这个pojo,我使用的过程如下:

  1. 我做了两个SQL语句:第一个通过ID获取类(class),第二个是让所有科目都由同一门类(class)过滤身份证号。
  2. 现在为了填充 pjo,我有一个填充方法来迭代第一个结果集和内部迭代第二个

可以优化该过程吗?也许用一个 SQL 语句?。

----------------------------------编辑------------------------ ------------------------

我将使用 @Patrick Piatkowski 建议的声明

SELECT * FROM Course
JOIN Subject
ON Course.id = Subject.course_id
WHERE /* Your filters here */

但是现在这让我想到了另一个问题。当我迭代结果集时,类(class)的列在每一行中都是相同的。

this.setId(oResultSetCourse.getInt("id")); this.setTitle(oResultSetCourse.getString("title")); this.setDescription(oResultSetCourse.getString("description"));

这些应该只填充一次,同时主题的pojo应该在每次迭代时填充

处理这个问题的最佳方法是什么?

最佳答案

您可以使用联接:

SELECT * FROM Course
JOIN Subject
ON Course.id = Subject.course_id
WHERE /* Your filters here */

或者另一种选择

SELECT * FROM Subject
WHERE course_id IN
(SELECT course_id FROM Course
WHERE /* Your filters here */)

第二种方法的优点是您仅从主题中获取列,同时还可以使用第一个语句从类(class)中获取列。

关于java - 用单个 SQL 语句填充一个包含另一个 pojo 的数组列表的 pojo,并正确迭代结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37099009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com