[JPA]@Formula
2023. 2. 5. 16:20
데이터베이스/JPA
Hiberante에서 제공하는 @Formula 어노테이션을 사용하면 가상 컬럼을 만들수 있다고 한다. 가상컬럼이라는 것은 JPA 상에는 존재하지만 DB에는 생성되지 않는 칼럼을 말한다. 주의해야 할 점은 하이버네이트 문서에도 언급되어 있지만 네이티브 SQL을 사용한다는 것이다. 때문에 RDBMS의 종류를 교체하는 경우 호환성에 문제 가 있을 수도 있다. 언제 사용하는가? 예제들을 보면 댓글 개수구하기, 좋아요 개수구하기, 글자수 구하기등 무언가를 카운팅할 때 주로 사용하는 것으로 보인다. 사용법 사용법은 매우 간단하다 Entity 필드에 @Formula(쿼리)를 달아주면 된다. //댓글 개수 @Formula("(SELECT count(1) FROM reply r WHERE r.boardId = id)")..
[자바] 박싱과 언박싱에 대해서
2023. 2. 5. 16:14
몰아 넣기
박싱 과 언박싱이란? 자바에는 기본 타입과 Wrapper 클래스가 존재한다. /** 기본 타입 : int, long, float, double, boolean 등 Wrapper 클래스 : Integer, Long, Float, Double, Boolean 등 */ // 박싱 int i = 10; Integer num = new Integer(i); // 언박싱 Integer num = new Integer(10); int i = num.intValue(); 오토 박싱 & 오토 언박싱 JDK 1.5부터는 자바 컴파일러가 박싱과 언박싱이 필요한 상황에 자동으로 처리를 해준다. // 오토 박싱 int i = 10; Integer num = i; // 오토 언박싱 Integer num = new Integer(..
12_19 Stream의 안좋은 예제 한가지
2023. 2. 5. 15:59
카테고리 없음
회고 각 로우에 stream을 사용해 총 6개의 반복문이 일어난다. 하지만 이 로직은 하나의 리스트객체를 사용하므로 하나의 반복문으로도 이 로직을 수행할 수 있었다. //헤더, 로우 정보 셋팅 LinkedHashMap dataMaps = new LinkedHashMap(); dataMaps.put("번호", numberList); dataMaps.put("회원그룹", responseList.stream().map(accountGiftCardDto -> (Object) accountGiftCardDto.getUserGroupName()).toList()); dataMaps.put("아이디", responseList.stream().map(accountGiftCardDto -> (Object) account..
[Spring] @Async를 사용해 비동기 메소드 만들어보기
2023. 1. 8. 20:34
몰아 넣기
MTP 메일 전송중 N명에게 전송해야하는 로직이 있었다. 동기로 처리하기엔 100명에게 메일을 보낼 경우 한명 당 1초가 걸린다면 1분40초가 걸리는 것이다. 그래서 비동기처리를 하도록 하였다. Async 기능 켜기 자바 설정Java configuration으로 비동기 처리enabling asynchronous processing를 쓰려면 간단히 설정 클래스에 @EnableAsync를 추가해주기만 하면 된다 또는 SpringApplication에 추가해주어도 좋다. @Configuration @EnableAsync public class SpringAsyncConfig { ... } @EnableCaching @EnableAsync @EnableScheduling @SpringBootApplication..