반응형
제목에 있는 그대로 내용을 다뤄볼것이다.
시작하기 앞서 Optional 에 대해서는 아래 참고 포스팅을 참고 바란다.
Optional은 안에 값이 null인지 아닌지를 판별해주는 자바 8부터 지원되는 기능이다.
JPA를 사용하면서 findBy 와 같은 쿼리메서드를 사용하면서 인자값을 optional로 받곤 하는데
list를 받을때 optional 을 사용하는 잘못된 코드를 발견하여 이렇게 포스팅으로 남겨둔다.
올바른 표기법은 둘중 하나이다.
- Optional<Entity> test
- List<Entity> test
Optional<Entity> test
위에껀 먼저 Entity 라는 항목이 null이거나 있거나이다.
이 기능은 findby 쿼리 메서드를 사용할 경우엔 Primary 한 값에 설정을 주로 해주며 1개만 있는 값을 받을때 사용한다.
하지만 그 값이 없을 경우엔 null로 반환을 하고
에러를 피하려면 아래 참고포스팅을 활용하여 orElse 를 사용하면 된다.
List<Entity> test
아래 List는 결국 배열이냐 아니냐의 문제이다.
고로 Optional<List<Entity>> 를 사용하게 되는건 옳지 않다.
이유는 List는 비어있는 배열도 배열이지 null이 아니기 때문이다.
Optional 에 대한 이해도가 더 필요하고 기능은 잘 쓰면 더욱 좋은 코드가 될것이다.
참고 포스팅
https://thenicesj.tistory.com/306
https://thenicesj.tistory.com/597
반응형
'IT > Java' 카테고리의 다른 글
@Transactional annotation (43) | 2023.07.10 |
---|---|
Cannot construct instance of Dto 에러 (38) | 2023.07.06 |
[Spring] BeanDefinition 이란? (36) | 2023.06.29 |
[자바] 메모리 영역 Static, Stack, Heap (45) | 2023.06.28 |
HttpServletRequest, HttpServletResponse에 대한 이해 (36) | 2023.06.24 |
댓글