Oh I’d be nothing without you. → 너 없인 난 아무것도 아니었을 거야. Oh there’d be no song without you. → 너 없인 이 노래도 없었을 거야. Without you. → 너 없이는. When I’m down and out and feel like There is nothing left for me. → 모든걸 잃고 아무것도 남은게 없는 것처럼 느껴질 때. You save me. → 넌 나를 구해줘. Oh I’d feel nothing without you. → 너 없인 아무것도 느끼지 못했을 꺼야. Oh there’d be no song without you. → 너 없인 이 노래도 없었을 꺼야. Without you. → 너 없이는. When I g..
- 문제 상황이 발생했다. 어떤 데이터를 조회하는데 일부가 누락되어 조회되는 상황발생. - 어떤 select 쿼리에 아래와 같이 limit 100이 적용 되 있다. pageable이 null 일 경우 조회결과에 limit 100을 건다. limit가 없을 시 해당쿼리의 실행결과가 122건이라고 할 때, limit가 적용되 있으면 몇건을 반환할까? limit 100 이니까 당연히 100건인것 같지만, 현실은 24건을 반환한다. 원인은 result Map 이 적용되 있기 때문. resultMap이란 결과값을 map에다 담아주는 역할을 함. resultMap을 찾아가보자. 해당 resultMap의 안에서 collection 작업을 통해서 grouping 해주기 떄문에 100개의 row가 24개로 결과가 나오게..
java.sql.SQLSyntaxErrorException : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1. 이라는 에러가 났다. 로그를 보면. Mapper에서 실행된 SQL문은 문제가 없어 보인다. 문제가 없어보인다고?... 자세히 봐바... {#id} 가 아니라 #{id} 잖아.... .... 이 문제 때문에 1시간을 소비했다.. 이런저런 설정 변경하고 구글링 하고.. 로그를 천천히 보도록 하자...
- 테스트 코드를 작성하고 테스트를 실행했는데 아래와 같은 에러가 났을때. 1. build.gradle에 아래 구문을 추가해준다. 2. intellij의 아래 설정을 'intellij IDEA' 로 변경해 준다. 그런데 이 방법은 별로 추천 안함. 여럿이서 개발하기 때문, 3. 여기서 문제가 해결되었다. import를 잘못한 것. JUnit5는 org.junit.Test이 아님. org.junit.jupiter.api.test를 import 해야 함. 이렇게 놓치기 쉬운 부분은 좀 더 신경 쓰도록 하자.
- PUT과 PATCH 둘다 업데이트 시에 사용됨. - PUT은 넘겨주지 않은 값은 null 로 업데이트 해버림. - 결과 category 컬럼은 null로 변경되버림. - PATCH 는 넘겨주지 않은 값은 기존의 값으로 남겨둠. .... 여기까지 작성하다가 문제가 생겼다. 결론적으로.. post - 매번 새로 등록됨. put - 없으면 등록하고 있으면 update. 멱등성보장. idempotent. 값이 없는 컬럼을 받으면 null 로 업데이트 해버림. patch - 값이 있는 컬럼만 update. 정의와 대략적인 성질은 위와 같은데. 어째서 직접 테스트 하면 patch도 값이 없는 데이터를 null로 등록하냐구. 또한, put도 insert를 타면 계속 insert를 하고. 그냥 mybatis map..
1. resources 폴더에 application.properties 파일이 있다. - 이 파일에 아래와 같이 설정을 해준다. - 각 프로퍼티속성이 의미하는 것은 속성의 이름을 보면 알 수 있다. 2. Mapper 파일의 인터페이스 파일을 작성한다. - @Mapper 어노테이션을 붙여줘서 스프링이 mapper 컴포넌트로 관리할 수 있게 해준다. 3. application.properties 파일에 mapper 파일 위치를 설정해 줬다. - resources 폴더 아래 위치에, 설정해놓은 폴더를 만든다. - 그리고 mapper 파일을 생성. 4. mapper 파일에 mapper.dtd 선언을 해주고 SQL 문을 작성한다. 5. Service 파일에서 mapper interface를 @Autowired로 ..
select T_main.countryCode as `countryCode`, T_main.entity as `entity`, ifnull(T_main.saleType, 'Total') as `saleType`, case when T_main.saleType is null then 'Total' when T_main.productName is null then 'sub-Total' else `T_main`.`productName` end as `productName`, T_main.disCode as `disCode`, case when T_main.saleType is null then '-' when T_main.productName is null then '-' else `T_main`.`itemN..
컬럼과 로우를 위치 변경하는 pivot 쿼리 예시. SELECT CASE WHEN T_TEAM_SALES.salesUserId = 'L000000' THEN 'Others' WHEN T_TEAM_SALES.salesUserId = 'L999999' THEN 'Resigned' WHEN `sales_user`.`name` IS NULL THEN 'Others' ELSE `sales_user`.`name` END AS `salesUserName`, CASE WHEN T_TEAM_SALES.salesTeamId = 'T0000000000' THEN 'Others' WHEN `sales_team`.`name` IS NULL THEN 'Others' ELSE `sales_team`.`name` END AS `sa..