Skip to content

Commit

Permalink
페이징 적용해보기 with querydsl
Browse files Browse the repository at this point in the history
  • Loading branch information
Leesanghun19 committed Aug 8, 2022
1 parent 47d4119 commit 60dffb1
Show file tree
Hide file tree
Showing 11 changed files with 362 additions and 3 deletions.
8 changes: 8 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ dependencies {
implementation ("org.springframework.boot:spring-boot-starter-mail")
implementation ("org.springframework.boot:spring-boot-starter-security")
implementation ("io.jsonwebtoken:jjwt:0.2")

implementation("com.querydsl:querydsl-core")
implementation("com.querydsl:querydsl-jpa")

annotationProcessor("com.querydsl:querydsl-apt:${dependencyManagement.importedProperties["querydsl.version"]}:jpa") // querydsl JPAAnnotationProcessor 사용 지정
annotationProcessor("jakarta.persistence:jakarta.persistence-api") // java.lang.NoClassDefFoundError(javax.annotation.Entity) 발생 대응
annotationProcessor("jakarta.annotation:jakarta.annotation-api") // java.lang.NoClassDefFoundError (javax.annotation.Generated) 발생 대응

implementation ("io.springfox:springfox-boot-starter:3.0.0")
compileOnly ("org.projectlombok:lombok")
runtimeOnly ("com.h2database:h2")
Expand Down
83 changes: 83 additions & 0 deletions src/main/generated/pj/circles/domain/QCircle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
package pj.circles.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.Generated;
import com.querydsl.core.types.Path;
import com.querydsl.core.types.dsl.PathInits;


/**
* QCircle is a Querydsl query type for Circle
*/
@Generated("com.querydsl.codegen.EntitySerializer")
public class QCircle extends EntityPathBase<Circle> {

private static final long serialVersionUID = 2090783579L;

private static final PathInits INITS = PathInits.DIRECT2;

public static final QCircle circle = new QCircle("circle");

public final StringPath address = createString("address");

public final StringPath cafeLink = createString("cafeLink");

public final EnumPath<CircleCategory> circleCategory = createEnum("circleCategory", CircleCategory.class);

public final EnumPath<CircleDivision> circleDivision = createEnum("circleDivision", CircleDivision.class);

public final NumberPath<Long> id = createNumber("id", Long.class);

public final StringPath information = createString("information");

public final StringPath introduce = createString("introduce");

public final StringPath link = createString("link");

public final QMember member;

public final ListPath<MemberLikeCircle, QMemberLikeCircle> memberLikeCircles = this.<MemberLikeCircle, QMemberLikeCircle>createList("memberLikeCircles", MemberLikeCircle.class, QMemberLikeCircle.class, PathInits.DIRECT2);

public final StringPath name = createString("name");

public final StringPath oneLineIntroduce = createString("oneLineIntroduce");

public final StringPath openKakaoLink = createString("openKakaoLink");

public final StringPath phoneNumber = createString("phoneNumber");

public final ListPath<Photo, QPhoto> photos = this.<Photo, QPhoto>createList("photos", Photo.class, QPhoto.class, PathInits.DIRECT2);

public final BooleanPath recruit = createBoolean("recruit");

public final DateTimePath<java.time.LocalDateTime> recruitEndDate = createDateTime("recruitEndDate", java.time.LocalDateTime.class);

public final DateTimePath<java.time.LocalDateTime> recruitStartDate = createDateTime("recruitStartDate", java.time.LocalDateTime.class);

public QCircle(String variable) {
this(Circle.class, forVariable(variable), INITS);
}

public QCircle(Path<? extends Circle> path) {
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
}

public QCircle(PathMetadata metadata) {
this(metadata, PathInits.getFor(metadata, INITS));
}

public QCircle(PathMetadata metadata, PathInits inits) {
this(Circle.class, metadata, inits);
}

public QCircle(Class<? extends Circle> type, PathMetadata metadata, PathInits inits) {
super(type, metadata, inits);
this.member = inits.isInitialized("member") ? new QMember(forProperty("member"), inits.get("member")) : null;
}

}

45 changes: 45 additions & 0 deletions src/main/generated/pj/circles/domain/QEmail.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package pj.circles.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.Generated;
import com.querydsl.core.types.Path;


/**
* QEmail is a Querydsl query type for Email
*/
@Generated("com.querydsl.codegen.EntitySerializer")
public class QEmail extends EntityPathBase<Email> {

private static final long serialVersionUID = 1870510001L;

public static final QEmail email1 = new QEmail("email1");

public final StringPath code = createString("code");

public final StringPath email = createString("email");

public final NumberPath<Long> id = createNumber("id", Long.class);

public final BooleanPath isCheck = createBoolean("isCheck");

public final BooleanPath isJoin = createBoolean("isJoin");

public QEmail(String variable) {
super(Email.class, forVariable(variable));
}

public QEmail(Path<? extends Email> path) {
super(path.getType(), path.getMetadata());
}

public QEmail(PathMetadata metadata) {
super(Email.class, metadata);
}

}

61 changes: 61 additions & 0 deletions src/main/generated/pj/circles/domain/QMember.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package pj.circles.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.Generated;
import com.querydsl.core.types.Path;
import com.querydsl.core.types.dsl.PathInits;


/**
* QMember is a Querydsl query type for Member
*/
@Generated("com.querydsl.codegen.EntitySerializer")
public class QMember extends EntityPathBase<Member> {

private static final long serialVersionUID = -1921736411L;

private static final PathInits INITS = PathInits.DIRECT2;

public static final QMember member = new QMember("member1");

public final QCircle circle;

public final StringPath email = createString("email");

public final NumberPath<Long> id = createNumber("id", Long.class);

public final ListPath<MemberLikeCircle, QMemberLikeCircle> memberLikeCircles = this.<MemberLikeCircle, QMemberLikeCircle>createList("memberLikeCircles", MemberLikeCircle.class, QMemberLikeCircle.class, PathInits.DIRECT2);

public final StringPath nickName = createString("nickName");

public final StringPath password = createString("password");

public final SetPath<String, StringPath> roles = this.<String, StringPath>createSet("roles", String.class, StringPath.class, PathInits.DIRECT2);

public QMember(String variable) {
this(Member.class, forVariable(variable), INITS);
}

public QMember(Path<? extends Member> path) {
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
}

public QMember(PathMetadata metadata) {
this(metadata, PathInits.getFor(metadata, INITS));
}

public QMember(PathMetadata metadata, PathInits inits) {
this(Member.class, metadata, inits);
}

public QMember(Class<? extends Member> type, PathMetadata metadata, PathInits inits) {
super(type, metadata, inits);
this.circle = inits.isInitialized("circle") ? new QCircle(forProperty("circle"), inits.get("circle")) : null;
}

}

54 changes: 54 additions & 0 deletions src/main/generated/pj/circles/domain/QMemberLikeCircle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package pj.circles.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.Generated;
import com.querydsl.core.types.Path;
import com.querydsl.core.types.dsl.PathInits;


/**
* QMemberLikeCircle is a Querydsl query type for MemberLikeCircle
*/
@Generated("com.querydsl.codegen.EntitySerializer")
public class QMemberLikeCircle extends EntityPathBase<MemberLikeCircle> {

private static final long serialVersionUID = -1106174388L;

private static final PathInits INITS = PathInits.DIRECT2;

public static final QMemberLikeCircle memberLikeCircle = new QMemberLikeCircle("memberLikeCircle");

public final QCircle circle;

public final NumberPath<Long> id = createNumber("id", Long.class);

public final QMember member;

public QMemberLikeCircle(String variable) {
this(MemberLikeCircle.class, forVariable(variable), INITS);
}

public QMemberLikeCircle(Path<? extends MemberLikeCircle> path) {
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
}

public QMemberLikeCircle(PathMetadata metadata) {
this(metadata, PathInits.getFor(metadata, INITS));
}

public QMemberLikeCircle(PathMetadata metadata, PathInits inits) {
this(MemberLikeCircle.class, metadata, inits);
}

public QMemberLikeCircle(Class<? extends MemberLikeCircle> type, PathMetadata metadata, PathInits inits) {
super(type, metadata, inits);
this.circle = inits.isInitialized("circle") ? new QCircle(forProperty("circle"), inits.get("circle")) : null;
this.member = inits.isInitialized("member") ? new QMember(forProperty("member"), inits.get("member")) : null;
}

}

57 changes: 57 additions & 0 deletions src/main/generated/pj/circles/domain/QPhoto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package pj.circles.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.Generated;
import com.querydsl.core.types.Path;
import com.querydsl.core.types.dsl.PathInits;


/**
* QPhoto is a Querydsl query type for Photo
*/
@Generated("com.querydsl.codegen.EntitySerializer")
public class QPhoto extends EntityPathBase<Photo> {

private static final long serialVersionUID = 1880533575L;

private static final PathInits INITS = PathInits.DIRECT2;

public static final QPhoto photo = new QPhoto("photo");

public final QCircle circle;

public final NumberPath<Long> id = createNumber("id", Long.class);

public final EnumPath<PhotoType> photoType = createEnum("photoType", PhotoType.class);

public final StringPath storeFileName = createString("storeFileName");

public final StringPath uploadFileName = createString("uploadFileName");

public QPhoto(String variable) {
this(Photo.class, forVariable(variable), INITS);
}

public QPhoto(Path<? extends Photo> path) {
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
}

public QPhoto(PathMetadata metadata) {
this(metadata, PathInits.getFor(metadata, INITS));
}

public QPhoto(PathMetadata metadata, PathInits inits) {
this(Photo.class, metadata, inits);
}

public QPhoto(Class<? extends Photo> type, PathMetadata metadata, PathInits inits) {
super(type, metadata, inits);
this.circle = inits.isInitialized("circle") ? new QCircle(forProperty("circle"), inits.get("circle")) : null;
}

}

19 changes: 19 additions & 0 deletions src/main/java/pj/circles/config/QueryDslConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package pj.circles.config;

import com.querydsl.jpa.impl.JPAQueryFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Configuration
public class QueryDslConfig {
@PersistenceContext
public EntityManager em;

@Bean
public JPAQueryFactory jpaQueryFactory(){
return new JPAQueryFactory(em);
}
}
2 changes: 1 addition & 1 deletion src/main/java/pj/circles/repository/CircleRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import java.util.List;

public interface CircleRepository extends JpaRepository<Circle,Long> {
public interface CircleRepository extends JpaRepository<Circle,Long>, CircleRepositoryCustom {

List<Circle> findByCircleCategory(CircleCategory circleCategory);
List<Circle> findByCircleDivision(CircleDivision circleDivision);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package pj.circles.repository;

import pj.circles.domain.Circle;

import java.util.List;

public interface CircleRepositoryCustom {
List<Circle> getList(int page);
}
23 changes: 23 additions & 0 deletions src/main/java/pj/circles/repository/CircleRepositoryImpl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package pj.circles.repository;

import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor;
import pj.circles.domain.Circle;
import pj.circles.domain.QCircle;

import java.util.List;

@RequiredArgsConstructor
public class CircleRepositoryImpl implements CircleRepositoryCustom{

private final JPAQueryFactory jpaQueryFactory;


@Override
public List<Circle> getList(int page) {
return jpaQueryFactory.selectFrom(QCircle.circle)
.limit(5)
.offset((long) page*5)
.fetch();
}
}
4 changes: 2 additions & 2 deletions src/main/java/pj/circles/service/CircleService.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ public Circle findById(Long circleId){
public List<Circle> findAll(){
return circleRepository.findAll();
}
public Page<Circle> findAllPage(Pageable pageable){
return circleRepository.findAll(pageable);
public List<Circle> findAllPage(Pageable pageable){
return circleRepository.getList(pageable.getPageNumber());
}
public List<Circle> findByCircleCategory(CircleCategory circleCategory){
return circleRepository.findByCircleCategory(circleCategory);
Expand Down

0 comments on commit 60dffb1

Please sign in to comment.