INPUT
SELECTのSQL文
OUTPUT
DTOのjavaソースコード(HogeDTO.java)
最終更新日時
Dec 6, 2024 6:19 AM
コンテンツカテゴリ
プロンプトカタログ
ツール
ChatGPTGitHub Copilot
利用シーン
実装/ドキュメントからコードを生成する
‣
GitHub Copilot
‣
SELECTのSQL文
DTOのjavaソースコード(HogeDTO.java)
FIND_PROJECT_WITH_ORGANIZATION =
SELECT
project.project_id,
project.project_name,
project.project_type,
project.project_class,
project.pm_kanji_name,
project.sales_amount,
project.project_start_date,
project.project_end_date,
project.version_no,
division.organization_name division_name,
department.organization_name
FROM
project
LEFT OUTER JOIN organization AS department
ON project.organization_id = department.organization_id
LEFT OUTER JOIN organization AS division
ON department.upper_organization = division.organization_id
WHERE
$if(divisionId) {division.organization_id = :divisionId}
AND
$if(organizationId) {department.organization_id = :organizationId}
AND
$if(projectType) {project.project_type in (:projectType[])}
AND
$if(projectClass) {project.project_class in (:projectClass[])}
AND
$if(salesFrom) {project.sales_amount >= :salesFrom}
AND
$if(salesTo) {project.sales_amount <= :salesTo}
AND
$if(projectStartDateFrom) {project.project_start_date >= :projectStartDateFrom}
AND
$if(projectStartDateTo) {project.project_start_date <= :projectStartDateTo}
AND
$if(projectEndDateFrom) {project.project_end_date >= :projectEndDateFrom}
AND
$if(projectEndDateTo) {project.project_end_date <= :projectEndDateTo}
AND
$if(projectName) {project.project_name like :%projectName%}
ORDER BY
project.project_id以下のsql文からデータを受け取るためのjavaのDTOクラスを実装してください。
# ルール
* 特に指定がない場合、参照型を使用してください
* idはIntegerとして宣言してください
* 金額はIntegerとして宣言してください
```
FIND_PROJECT_WITH_ORGANIZATION =
SELECT
project.project_id,
project.project_name,
project.project_type,
project.project_class,
project.pm_kanji_name,
project.sales_amount,
project.project_start_date,
project.project_end_date,
project.version_no,
division.organization_name division_name,
department.organization_name
FROM
project
LEFT OUTER JOIN organization AS department
ON project.organization_id = department.organization_id
LEFT OUTER JOIN organization AS division
ON department.upper_organization = division.organization_id
WHERE
$if(divisionId) {division.organization_id = :divisionId}
AND
$if(organizationId) {department.organization_id = :organizationId}
AND
$if(projectType) {project.project_type in (:projectType[])}
AND
$if(projectClass) {project.project_class in (:projectClass[])}
AND
$if(salesFrom) {project.sales_amount >= :salesFrom}
AND
$if(salesTo) {project.sales_amount <= :salesTo}
AND
$if(projectStartDateFrom) {project.project_start_date >= :projectStartDateFrom}
AND
$if(projectStartDateTo) {project.project_start_date <= :projectStartDateTo}
AND
$if(projectEndDateFrom) {project.project_end_date >= :projectEndDateFrom}
AND
$if(projectEndDateTo) {project.project_end_date <= :projectEndDateTo}
AND
$if(projectName) {project.project_name like :%projectName%}
ORDER BY
project.project_id
```import java.time.LocalDate;
import java.util.Objects;
public class ProjectWithOrganizationDTO {
private Integer projectId;
private String projectName;
private String projectType;
private String projectClass;
private String pmKanjiName;
private Integer salesAmount;
private LocalDate projectStartDate;
private LocalDate projectEndDate;
private Integer versionNo;
private String divisionName;
private String departmentName;
// デフォルトコンストラクタ
public ProjectWithOrganizationDTO() {
}
// 全フィールドを含むコンストラクタ
public ProjectWithOrganizationDTO(Integer projectId, String projectName, String projectType,
String projectClass, String pmKanjiName, Integer salesAmount,
LocalDate projectStartDate, LocalDate projectEndDate,
Integer versionNo, String divisionName, String departmentName) {
this.projectId = projectId;
this.projectName = projectName;
this.projectType = projectType;
this.projectClass = projectClass;
this.pmKanjiName = pmKanjiName;
this.salesAmount = salesAmount;
this.projectStartDate = projectStartDate;
this.projectEndDate = projectEndDate;
this.versionNo = versionNo;
this.divisionName = divisionName;
this.departmentName = departmentName;
}
// GetterおよびSetterメソッド
// 省略...
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ProjectWithOrganizationDTO that = (ProjectWithOrganizationDTO) o;
return Objects.equals(projectId, that.projectId) && Objects.equals(projectName, that.projectName)
&& Objects.equals(projectType, that.projectType) && Objects.equals(projectClass, that.projectClass)
&& Objects.equals(pmKanjiName, that.pmKanjiName) && Objects.equals(salesAmount, that.salesAmount)
&& Objects.equals(projectStartDate, that.projectStartDate) && Objects.equals(projectEndDate, that.projectEndDate)
&& Objects.equals(versionNo, that.versionNo) && Objects.equals(divisionName, that.divisionName)
&& Objects.equals(departmentName, that.departmentName);
}
@Override
public int hashCode() {
return Objects.hash(projectId, projectName, projectType, projectClass, pmKanjiName, salesAmount,
projectStartDate, projectEndDate, versionNo, divisionName, departmentName);
}
@Override
public String toString() {
return "ProjectWithOrganizationDTO{" +
"projectId=" + projectId +
", projectName='" + projectName + '\'' +
", projectType='" + projectType + '\'' +
", projectClass='" + projectClass + '\'' +
", pmKanjiName='" + pmKanjiName + '\'' +
", salesAmount=" + salesAmount +
", projectStartDate=" + projectStartDate +
", projectEndDate=" + projectEndDate +
", versionNo=" + versionNo +
", divisionName='" + divisionName + '\'' +
", departmentName='" + departmentName + '\'' +
'}';
}
}