본문 바로가기

2019/01

eclipse, sts 에서 navigator또는 explorer font 크기변경 intellij 와 eclipse(sts)를 번갈아 가며 쓰다보면, eclispe는 뭔가 더 해줘야 하는 좋은 기분이 들때가 있다.ㅎㅎ 4k환경에서 eclipse 를 띄워서 폰트크기를 변경하면 좌측 nav 영역에는 반영이 안되고 이것저것 사이즈를 찾아 수정해도 변경이 안된다. 그럴때는 그냥 아래 위치에서(버전은 다를 수 있음. 4.10 기준) e4_default_win.css 같은 자신에게 맞는 파일 찾아서 수정하면 된다.{STS_HOMT}\plugins\org.eclipse.ui.themes_1.2.300.v20181108-1102\css 추가 문구.MPart Tree { font-family: 원하는 폰트; font-size: 12;} 잘 나온다. 더보기
Hibernate Envers 적용 Spring Boot 2.x + Spring Data JPA특정 엔터티에 대해서 히스토리를 남겨야 하는 경우가 있다(비즈니스 요구사항 또는 시스템적으로..) 기존에는 해당 테이블의 히스토리 테이블을 만들어서 ObjectMapper등을 이용하여 json으로 변경한 후, 몇몇 정보와 함께 저장을 했었는데.Hibernate Envers 이놈을 이용하면 그런 메뉴얼로 하는 작업들의 양을 줄일 수 있다. 다른것 필요없이 이것만 추가하면 된다.compile('org.hibernate:hibernate-envers') 이후 history/log를 남겨야할 entity에 다음의 어노테이션을 추가하면 끝.@Audited@Cacheable@org.hibernate.annotations.Cache(usage = CacheC.. 더보기
IntelliJ에서 orElseThrow 를 new XXException() 으로 할 때와 XXException::new로 할 때. 아래 이미지는 기본적인 Spring Data JPA에서의 findById이다. 반환 값이 Optional 이어서 없는 경우는 그냥 throw 를 하려고 하고, 보편적인 방식으로 new EntityNot..을 하면 좌측 붉은색 아이콘과 함께 안내 문구가 나온다. 딱히 문제될 소지는 없는데.. 역시 아이콘이 보이니까 자꾸 신경이 쓰인다. 해서 이렇게 메소드 참조로 해보니 아이콘이 없어졌다. 흠.. 첫번째는 실제 EntityNotFoundException 을 생성해서 넘기는 것이고, 두번째는 메소드만 참조를 걸어서 넘기는 것이고..(?) 이렇게 생각이 들었는데 이게 뭐야!!!!???? 여튼 Exception내에 인수를 넘겨서 throw 할때는 첫번째 방식으로 처리하기는 하는데. 이럴꺼면 그냥 class를 받는.. 더보기
Stream 에서 특정 필드들에 대한 Key Count GroupingBy 가령 아래와 같은 Dto가 List로 있다고 하자. public class ProductDto { String groupSkuCode; String skuCode; } List productDtos = ... 요구사항은 groupSkuCode를 기반으로 skuCode가 여러개를 가질 수 있는 경우, groupSkuCode를 키로 가지며 skuCode에 대해서 Group Count를 볼 수 있는 Map을 반환 하고 싶을 경우이다.(아... 어렵군) 그럼 collect에 대해서 다음과 같이 하면 key는 처리될 터이고. productDtos.stream().collect(Collectors.groupingBy(ProductDto::getGroupSkuCode, {그럼 여기가 문제겠지}... 단순히 해당 ge.. 더보기