꼬물꼬물
QueryDSL 본문
// build.gradle
buildscript {
ext {
queryDslVersion = "5.0.0"
}
}
plugins {
// ...
id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
}
dependencies {
// ...
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
}
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
compileQuerydsl{
options.annotationProcessorPath = configurations.querydsl
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
querydsl.extendsFrom compileClasspath
}
사용 예)
/**
* @author : 박민주
* @date : 2022-03-23 오후 5:52
**/
public List<Game> findGameByFilter(String gameName, Integer gamePlayer, Integer gameTime, Double gameWeight, Integer gameAge, Double gameScore, List<String> gameCategory) {
JPQLQuery<Game> query = new JPAQuery<>(em);
QGame qGame = new QGame("Game");
BooleanBuilder builder = new BooleanBuilder();
if(gameName != null){
builder.and(qGame.gameName.contains(gameName));
}
if(gamePlayer != null){
builder.and(qGame.gameMinPlayer.goe(gamePlayer));
}
if(gameTime != null){
builder.and(qGame.gameMaxTime.loe(gameTime));
}
if(gameAge != null){
builder.and(qGame.gameAge.loe(gameAge));
}
if(gameWeight != null){
builder.and(qGame.gameWeight.loe(gameWeight));
}
if(gameScore != null){
builder.and(qGame.gameTotalScore.goe(gameScore));
}
if(!gameCategory.isEmpty()){
for (String c : gameCategory) {
builder.and(qGame.gameCategory.contains(c));
}
}
List<Game> gameList = query.from(qGame)
.where(builder)
.fetch();
return gameList;
}
'코딩 > 환경설정' 카테고리의 다른 글
DBeaver MariaDB 연결하기 (0) | 2022.06.13 |
---|---|
Spring Security 설정하기 (0) | 2022.04.24 |
MariaDB/Intellij 연결 (0) | 2022.01.28 |
Lombok(롬복) 설정 (0) | 2022.01.19 |
프로세스 종료 (0) | 2022.01.12 |