본문 바로가기

전체 글

팁] Spring MVC Trim 처리 간혹, Form Object나 검색용 Dto같은 놈들의 String 항목에 Trim처리를 해야 할때가 있다. 예~~전에는 @Trim Annotation이나 직접 Trim처리를 하곤 했었던 아득한 기억이 있는데.. @ControllerAdvice public class XXXXControllerAdvice { @InitBinder public void initBinder(WebDataBinder binder) { binder.registerCustomEditor(String.class, new StringTrimmerEditor(true)); } ... 그냥 이렇게 써도 무난하리라 생각.. 더보기
Spring / QueryDSL int * int = long 의 경우 NumberPath 컬럼에 대응하는 값들을 multiply 처리해 쓰다보면 실제 결과는 int 를 넘어가는 상황을 맞이하게 된다. 이때 ea (int) * salePrice(int)의 경우 as사용시 당연하지만 NumberPath가 Integer로 지정된다. .. NumberPath totalSalePrice = Expressions.numberPath(Integer.class, "totalSalePrice"); .. qOrderItem.ea.sum().multiply(qOrderItem.salePrice.min()).as(totalSalePrice)) 근데 우린 장사가 잘되고 있으니 int의 범위를 훅 넘어버린다. 문제는 code에서 int로 했다고 해서 오류는 나지 않는다. (단지 결과만 음수처리되어.. 더보기
해보기 예정. https://dzone.com/articles/functional-programming-patterns-with-java-8 Functional Programming Patterns With Java 8 - DZone Java This tutorial will provide exercises from traditional, imperative-style code to functional-style code in Java 8, continuously aiming to create cleaner code. dzone.com 더보기
Object의 복사는 무조건 Copy!!! 개발완료된 운영소스를 바통 받아서 요구사항 추가 작업중.. List 내의 element의 수정이 있어서 작업후 테스트를 하는데 예상외의 값이 자꾸 나온다. - A,B,C 상품이 판매수량 만큼 복사되어 담겨있는 리스트 - 만일 A상품을 2개를 샀다면, 'A, A, B, C' 이런식. 내가 할 작업은 간단했다 A, A에 인덱스를 붙여주는 즉 A1, A2로, 근데.. 수정을 하면 자꾸 A2, A2로 출력된다. 으악... stream처리를 잘못했나? foreach 의 어떤부분이 문제인가? orika가 문제인가? Lombok? equlas? hashcode?...아니면 정말 내 인성이 문제인가????? 추론은 추론을 낳고, 그 추론은 다시 더 깊은 추론으로 이어지고.. 이렇게 몇시간을 소비하다 아몰랑.. 퇴근. .. 더보기
JPA Custom DTO 반환하기. http://www.bytestree.com/spring/spring-data-jpa-projections-5-ways-return-custom-object/ 간혹 보면 코드 일관성을 위해 이 방식은 안된다~로 고정시키는 경우가 있는데.. 그냥 각자 개발 스타일에 따라 사용할 수 있는 것이 좋을 듯 하다. 너무 타이트하면 업무력 다운.. 더보기