Skip to content

Commit b7c5e27

Browse files
authored
♻️ refactor: JPQL QueryDSL로 변경 (#63)
* 🙈 chore: QueryDsl 설정 * ♻️ refactor: QueryDsl 적용 * 🙈chore : gitignore 추가 * 🙈chore : gitignore 추가 * ♻️ refactor: SonarLint 코드 스멜 제거
1 parent bdaf9dd commit b7c5e27

24 files changed

+789
-61
lines changed

.github/ISSUE_TEMPLATE/✨-feat.md

-20
This file was deleted.

.github/ISSUE_TEMPLATE/🐛-fix.md

-20
This file was deleted.

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# Edit at https://www.toptal.com/developers/gitignore?templates=java,gradle
33

44
*-secret.yml
5+
src/main/generated/
56

67
# Mac os
78
*.Ds_Store

build.gradle

+26-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
buildscript {
2+
ext {
3+
queryDslVersion = "5.0.0"
4+
}
5+
}
6+
17
plugins {
28
id 'java'
39
id 'org.springframework.boot' version '3.2.0'
@@ -57,13 +63,32 @@ dependencies {
5763

5864
// S3
5965
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
66+
67+
//querydsl
68+
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
69+
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
70+
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
71+
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
6072
}
6173

6274
tasks.named('test') {
6375
useJUnitPlatform()
6476
}
6577

66-
// enable plain.jar
78+
def generated = 'src/main/generated'
79+
80+
tasks.withType(JavaCompile) {
81+
options.getGeneratedSourceOutputDirectory().set(file(generated))
82+
}
83+
84+
sourceSets {
85+
main.java.srcDirs += [generated]
86+
}
87+
88+
clean {
89+
delete file(generated)
90+
}
91+
6792
jar {
6893
enabled = false
6994
}

http/test.http

+4
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ Content-Type: application/json
7878
### 보고서 조회
7979
GET http://localhost:8080/api/v1/reports/0
8080

81+
82+
### 공고 검색
83+
GET http://localhost:8080/api/v1/announcements?search=무신사
84+
8185
### 내 조직 조회
8286
GET http://localhost:8080/api/v1/organizations/me
8387
Authorization: Bearer {{matsterToken}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package com.sponus.sponusbe.domain.announcement.entity;
2+
3+
import static com.querydsl.core.types.PathMetadataFactory.*;
4+
5+
import com.querydsl.core.types.dsl.*;
6+
7+
import com.querydsl.core.types.PathMetadata;
8+
import javax.annotation.processing.Generated;
9+
import com.querydsl.core.types.Path;
10+
import com.querydsl.core.types.dsl.PathInits;
11+
12+
13+
/**
14+
* QAnnouncement is a Querydsl query type for Announcement
15+
*/
16+
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
17+
public class QAnnouncement extends EntityPathBase<Announcement> {
18+
19+
private static final long serialVersionUID = -1589881557L;
20+
21+
private static final PathInits INITS = PathInits.DIRECT2;
22+
23+
public static final QAnnouncement announcement = new QAnnouncement("announcement");
24+
25+
public final com.sponus.sponusbe.global.common.QBaseEntity _super = new com.sponus.sponusbe.global.common.QBaseEntity(this);
26+
27+
public final EnumPath<com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementCategory> category = createEnum("category", com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementCategory.class);
28+
29+
public final StringPath content = createString("content");
30+
31+
//inherited
32+
public final DateTimePath<java.time.LocalDateTime> createdAt = _super.createdAt;
33+
34+
public final NumberPath<Long> id = createNumber("id", Long.class);
35+
36+
public final EnumPath<com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementStatus> status = createEnum("status", com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementStatus.class);
37+
38+
public final StringPath title = createString("title");
39+
40+
public final EnumPath<com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementType> type = createEnum("type", com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementType.class);
41+
42+
//inherited
43+
public final DateTimePath<java.time.LocalDateTime> updatedAt = _super.updatedAt;
44+
45+
public final NumberPath<Long> viewCount = createNumber("viewCount", Long.class);
46+
47+
public final com.sponus.sponusbe.domain.organization.entity.QOrganization writer;
48+
49+
public QAnnouncement(String variable) {
50+
this(Announcement.class, forVariable(variable), INITS);
51+
}
52+
53+
public QAnnouncement(Path<? extends Announcement> path) {
54+
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
55+
}
56+
57+
public QAnnouncement(PathMetadata metadata) {
58+
this(metadata, PathInits.getFor(metadata, INITS));
59+
}
60+
61+
public QAnnouncement(PathMetadata metadata, PathInits inits) {
62+
this(Announcement.class, metadata, inits);
63+
}
64+
65+
public QAnnouncement(Class<? extends Announcement> type, PathMetadata metadata, PathInits inits) {
66+
super(type, metadata, inits);
67+
this.writer = inits.isInitialized("writer") ? new com.sponus.sponusbe.domain.organization.entity.QOrganization(forProperty("writer")) : null;
68+
}
69+
70+
}
71+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.sponus.sponusbe.domain.announcement.entity;
2+
3+
import static com.querydsl.core.types.PathMetadataFactory.*;
4+
5+
import com.querydsl.core.types.dsl.*;
6+
7+
import com.querydsl.core.types.PathMetadata;
8+
import javax.annotation.processing.Generated;
9+
import com.querydsl.core.types.Path;
10+
import com.querydsl.core.types.dsl.PathInits;
11+
12+
13+
/**
14+
* QAnnouncementAttachment is a Querydsl query type for AnnouncementAttachment
15+
*/
16+
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
17+
public class QAnnouncementAttachment extends EntityPathBase<AnnouncementAttachment> {
18+
19+
private static final long serialVersionUID = 969494702L;
20+
21+
private static final PathInits INITS = PathInits.DIRECT2;
22+
23+
public static final QAnnouncementAttachment announcementAttachment = new QAnnouncementAttachment("announcementAttachment");
24+
25+
public final QAnnouncement announcement;
26+
27+
public final NumberPath<Long> id = createNumber("id", Long.class);
28+
29+
public final StringPath name = createString("name");
30+
31+
public final StringPath url = createString("url");
32+
33+
public QAnnouncementAttachment(String variable) {
34+
this(AnnouncementAttachment.class, forVariable(variable), INITS);
35+
}
36+
37+
public QAnnouncementAttachment(Path<? extends AnnouncementAttachment> path) {
38+
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
39+
}
40+
41+
public QAnnouncementAttachment(PathMetadata metadata) {
42+
this(metadata, PathInits.getFor(metadata, INITS));
43+
}
44+
45+
public QAnnouncementAttachment(PathMetadata metadata, PathInits inits) {
46+
this(AnnouncementAttachment.class, metadata, inits);
47+
}
48+
49+
public QAnnouncementAttachment(Class<? extends AnnouncementAttachment> type, PathMetadata metadata, PathInits inits) {
50+
super(type, metadata, inits);
51+
this.announcement = inits.isInitialized("announcement") ? new QAnnouncement(forProperty("announcement"), inits.get("announcement")) : null;
52+
}
53+
54+
}
55+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.sponus.sponusbe.domain.announcement.entity;
2+
3+
import static com.querydsl.core.types.PathMetadataFactory.*;
4+
5+
import com.querydsl.core.types.dsl.*;
6+
7+
import com.querydsl.core.types.PathMetadata;
8+
import javax.annotation.processing.Generated;
9+
import com.querydsl.core.types.Path;
10+
import com.querydsl.core.types.dsl.PathInits;
11+
12+
13+
/**
14+
* QAnnouncementImage is a Querydsl query type for AnnouncementImage
15+
*/
16+
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
17+
public class QAnnouncementImage extends EntityPathBase<AnnouncementImage> {
18+
19+
private static final long serialVersionUID = 499705584L;
20+
21+
private static final PathInits INITS = PathInits.DIRECT2;
22+
23+
public static final QAnnouncementImage announcementImage = new QAnnouncementImage("announcementImage");
24+
25+
public final QAnnouncement announcement;
26+
27+
public final NumberPath<Long> id = createNumber("id", Long.class);
28+
29+
public final StringPath name = createString("name");
30+
31+
public final StringPath url = createString("url");
32+
33+
public QAnnouncementImage(String variable) {
34+
this(AnnouncementImage.class, forVariable(variable), INITS);
35+
}
36+
37+
public QAnnouncementImage(Path<? extends AnnouncementImage> path) {
38+
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
39+
}
40+
41+
public QAnnouncementImage(PathMetadata metadata) {
42+
this(metadata, PathInits.getFor(metadata, INITS));
43+
}
44+
45+
public QAnnouncementImage(PathMetadata metadata, PathInits inits) {
46+
this(AnnouncementImage.class, metadata, inits);
47+
}
48+
49+
public QAnnouncementImage(Class<? extends AnnouncementImage> type, PathMetadata metadata, PathInits inits) {
50+
super(type, metadata, inits);
51+
this.announcement = inits.isInitialized("announcement") ? new QAnnouncement(forProperty("announcement"), inits.get("announcement")) : null;
52+
}
53+
54+
}
55+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package com.sponus.sponusbe.domain.organization.entity;
2+
3+
import static com.querydsl.core.types.PathMetadataFactory.*;
4+
5+
import com.querydsl.core.types.dsl.*;
6+
7+
import com.querydsl.core.types.PathMetadata;
8+
import javax.annotation.processing.Generated;
9+
import com.querydsl.core.types.Path;
10+
import com.querydsl.core.types.dsl.PathInits;
11+
12+
13+
/**
14+
* QOrganization is a Querydsl query type for Organization
15+
*/
16+
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
17+
public class QOrganization extends EntityPathBase<Organization> {
18+
19+
private static final long serialVersionUID = 177366787L;
20+
21+
public static final QOrganization organization = new QOrganization("organization");
22+
23+
public final com.sponus.sponusbe.global.common.QBaseEntity _super = new com.sponus.sponusbe.global.common.QBaseEntity(this);
24+
25+
//inherited
26+
public final DateTimePath<java.time.LocalDateTime> createdAt = _super.createdAt;
27+
28+
public final StringPath description = createString("description");
29+
30+
public final StringPath email = createString("email");
31+
32+
public final NumberPath<Long> id = createNumber("id", Long.class);
33+
34+
public final StringPath imageUrl = createString("imageUrl");
35+
36+
public final StringPath location = createString("location");
37+
38+
public final StringPath managerAvailableDay = createString("managerAvailableDay");
39+
40+
public final StringPath managerAvailableHour = createString("managerAvailableHour");
41+
42+
public final StringPath managerContactPreference = createString("managerContactPreference");
43+
44+
public final StringPath managerEmail = createString("managerEmail");
45+
46+
public final StringPath managerName = createString("managerName");
47+
48+
public final StringPath managerPhone = createString("managerPhone");
49+
50+
public final StringPath managerPosition = createString("managerPosition");
51+
52+
public final StringPath name = createString("name");
53+
54+
public final ListPath<OrganizationLink, QOrganizationLink> organizationLinks = this.<OrganizationLink, QOrganizationLink>createList("organizationLinks", OrganizationLink.class, QOrganizationLink.class, PathInits.DIRECT2);
55+
56+
public final EnumPath<com.sponus.sponusbe.domain.organization.entity.enums.OrganizationStatus> organizationStatus = createEnum("organizationStatus", com.sponus.sponusbe.domain.organization.entity.enums.OrganizationStatus.class);
57+
58+
public final ListPath<OrganizationTag, QOrganizationTag> organizationTags = this.<OrganizationTag, QOrganizationTag>createList("organizationTags", OrganizationTag.class, QOrganizationTag.class, PathInits.DIRECT2);
59+
60+
public final EnumPath<com.sponus.sponusbe.domain.organization.entity.enums.OrganizationType> organizationType = createEnum("organizationType", com.sponus.sponusbe.domain.organization.entity.enums.OrganizationType.class);
61+
62+
public final StringPath password = createString("password");
63+
64+
public final EnumPath<com.sponus.sponusbe.domain.organization.entity.enums.SuborganizationType> suborganizationType = createEnum("suborganizationType", com.sponus.sponusbe.domain.organization.entity.enums.SuborganizationType.class);
65+
66+
//inherited
67+
public final DateTimePath<java.time.LocalDateTime> updatedAt = _super.updatedAt;
68+
69+
public QOrganization(String variable) {
70+
super(Organization.class, forVariable(variable));
71+
}
72+
73+
public QOrganization(Path<? extends Organization> path) {
74+
super(path.getType(), path.getMetadata());
75+
}
76+
77+
public QOrganization(PathMetadata metadata) {
78+
super(Organization.class, metadata);
79+
}
80+
81+
}
82+

0 commit comments

Comments
 (0)