개발 업무를 진행함에 있어 몰랐던 팁들을 종합하기 위한 게시물입니다.
[DB] Not Null 컬럼에 default 값이 필요한 이유
기존 테이블에 신규 컬럼이 추가되어 null 값이 입력되는 경우 사용할 수 있음.
[JPA] java Optional 오용 주의
[JPA] Stream 과 JPA 와의 관계
스트림으로 리스트를 받을 경우, Lazy 로딩처럼 값을 구체화하지 않고 한건 씩 처리할 준비만 한 상태가 된다.
따라서 값을 유지시킬 영속성 컨텍스트가 필요하며,
이를 위해 트랜잭션을 설정해야한다.
그렇지 않을 경우, JPA 메소드가 끝남과 동시에 컨텍스트가 유지되지 않아 데이터가 없어지게 되고, 아래와 같은 오류가 발생한다.
org.springframework.dao.InvalidDataAccessApiUsageException:
You're trying to execute a streaming query method without a surrounding transaction that keeps the connection open so that the Stream can actually be consumed. Make sure the code consuming the stream uses @Transactional or any other way of declaring a (read-only) transaction.
[Kafka] 컨슈머 그룹