java
-
QueryDsl where 조건에서 stringtemplate 사용하자JPA 2021. 7. 14. 20:00
몇 년 전에 querydsl을 사용하고 나서 해당 연산을 어떻게 해야 하는지 시행착오가 좀 있었는데 최근에 같은 팀원분이 어떻게 해야 되는지 물어봐서 다른 사람들도 모를 수 있겠구나 하고 글을 적어본다 보통 querydsl에서 비교를 할 때 우리는 다음과 같이 한다 LocalDateTime createDate = LocalDateTime.now(); 생략 .where( qOrderSheet.createDate.gt(createDate) ); qOrderSheet.createDate.gt(createDate)처럼 칼럼에다 주어진 값을 전달해서 같은지 큰지 적은 지 등등 비교를 한다 하지만 위와 같은 작업으로만 다 될 수 있는 것은 아니다 만약 아래와 같이 하고 싶다면? .where( qOrderSheet...
-
LocalDate, LocalDateTime format 변경spring 2021. 5. 4. 14:05
java Date는 많이 쓰지만 가끔 다른 포맷으로 변경해주는 것을 사용해야 될 때가 있는데 그것은 자주 쓰지 않아 잊어버리다가 써야 할 때 또 검색해서 찾아보곤 하였다 그러나 이제는 그런 반복을 하지 않기 위해 간단히 정리를 하였다 1. String date = "2015-08-04"; LocalDate parse = LocalDate.parse(strDate); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd MMM uuuu"); System.out.println(parse + " formats as " + dateTimeFormatter.format(parse)); 2. String date = "2015-08-04 22:..
-
Spring EntityManagerFactoryBuilder 에러spring 2020. 5. 2. 09:53
EntityManagerFactoryBuilder expected at least 1 bean which qualifies as autowire candidate 최근 해당 에러를 2번이나 직면했다.. 1. spring 실행 할 때 2. 하나는 spring 2.1 -> 2.2로 버전을 올릴 때 spring batch를 실행하는데 계속 위의 에러가 발생하였다 그래서 소스를 보니 현재 우리는 multi datasource를 사용하는데 소스를 이동하는 중에 @Primary가 빠져있었다 intellij는 여러개의 라인을 ...으로 변경해주는 기능이 있는데 그것 때문에 바로 찾지는 못하였다ㅎㅎ 우리는 멀티 모듈을 사용하고 있는데 작년에 redis모듈과 elasticsearch모듈을 만들어서 나누고 gradle에서..
-
QueryDsl from subquery와 join을 해보자!JPA 2019. 9. 3. 22:33
php에 있는 batch query를 java로 마이그레이션 하는 작업중에 있다 휴ㅎㅎ그냥 mybatis를 사용했다면 정말 쉽게 할 수 있는것이지만 오늘도 애를 먹은 경험을 공유하고 싶어서 글을 쓴다. 위와 같은 예제 쿼리를 실했시켰더니 내가 생각한대로 결과가 나오겠지 하는 기대와 달리 다른 쿼리 결과가 생성되었다. 분명 union all한 쿼리를 묶어서 goods 와 join을 해야 하는데 조인을 하지 않았다. 사실은 맨 처음에는 SQLExpressions.union()를 사용했었는데 ExpressionUtils.as 에러가 발생하여서 jpasqlQuery 참조변수의 unionAll을 사용하였다. qGoods를 조인하는 부분을 제거 하고 from도 제거하고 unionAll만 셋팅해서 sql을 날려 보았..
-
QueryDsl - Date 작성시 Expressions.dateTemplate를 사용하자!JPA 2019. 9. 3. 22:20
사실 꼭 그렇지 않지만 나는 entity로 생성된 Q파일의 DateTimePath type은 Expressions.dateTemplate을 사용하는 것을 선호한다 그 이유는 예제를 보자. 전체 쿼리를 보여주면 오히려 복잡할 것 같아 짤라서 첨부했습니다. updDm은 DateTimePath이다 그래서 비교 대상은 날짜 관련 객체만 올 수 있다. 그래서 나는 처음에는 생각 없이 저렇게 사용 하였다. updDm의 값은 값은 이러하다. 그리고 querydsl을 실행하였더니.... 조회 결과가 362066건이 나와버렸다... 분명 이렇게 나올 수 없는 건수였는데 그래서 바인딩 된 값을 확인하였더니 Wed Jan 23 09:22:21 KST 2019 updDm값이 저렇게 바인딩 되었다. 58만개에서 줄긴? 줄었다ㅋ..
-
Unit Test - 에서 jmock을 사용해 동시성 테스트 하기UNIT TEST 2019. 9. 1. 22:48
무신사에서 현재 unit test는 spock와 unit test5를 사용해서 테스트를 진행하고 있다 두가지 중 어느것을 사용해도 무방하지만 나는 spock를 사용해서 테스트를 한다 각설하고 현재 무신사에서 php로 된 코드를 java로 마이그레이션을 하고 있는데 point관련 동시성 테스트를 진행해야 했다 물론 jmeter나 그 외 테스트 툴을 사용하려 했지만 그러한 테스트는 단발성 이기 때문에 진행하지 않고 코드로 남겨서 빌드 할 때 테스트를 진행할 수 있도록 하고 싶었다 그래서 동시성 관련 테스트 libarary을 알아보았는데 GroboUtils라는 테스트 library는 너무 오래 되기도 했고 우리 프로젝트에서 사용시 에러가 나는 문제가 있어서 사용하지 않고 다른것을 찾아보던 와중 https://..