본문 바로가기

JPA

kotlin + Jpa Lazy Loading 트러블 슈팅 상황 1 Kotlin과 JPA를 사용하면서, 다음과 같은 plugins를 적용하고 LazyLoading을 사용하였으나, 적용되지 않는 문제가 발생하였다. kotlin("plugin.spring") version "1.8.21" kotlin("plugin.jpa") version "1.8.21" 🔎 plugin.spring: 다음과 같은 어노테이션이 붙은 코틀린 클래스에 대해 자동으로 붙는 final 키워드를 open 해주는 allOpen을 지원한다. Spring boot 2.x 버전부터 CGLIB Proxy 방식으로 Bean을 관리하고 있어, Target Class를 상속받아 프록시를 생성하기 때문에 open으로 열기 위해 사용한다. @Component, @Async, @Transactional, @Ca.. 더보기
[JPA] UnexpectedRollbackException @Transactional을 사용한 메서드에서 예외가 발생하게 되면 Rollback 처리가 된다. @Transational public void saveUser() { userTermsRespository.saveAll(userTerms); User user = userRepository.save(user); // 에러 발생 } * user를 저장하는 과정에서 UnChecked Exception이 발생하면 userTerms는 Rollback 된다. @Transational public void saveUser() { userTermsRespository.saveAll(userTerms); try { User user = userRepository.save(user); // 에러 발생 } catch (Ex.. 더보기
[JPA] Data truncation: Data too long for column @Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Qna extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private Account account; private String title; private String content; } spring: jpa: hibernate: ddl-auto: create 위와 같이 Qna Entity를 생성하고 jpa.hibernate.ddl-.. 더보기
[JPA] 설정한 batch_size만큼 in 절이 나가지 않는 이유 @BatchSize(size = 100)으로 설정했음에도 불구하고 실제 조회 쿼리를 실행하면 아래와 같은 실행 결과가 나왔다. select emojilist0_.comment_no as comment_5_3_1_, emojilist0_.emoji_no as emoji_no1_3_1_, emojilist0_.emoji_no as emoji_no1_3_0_, emojilist0_.board_no as board_no4_3_0_, emojilist0_.comment_no as comment_5_3_0_, emojilist0_.emoji as emoji2_3_0_, emojilist0_.user_no as user_no3_3_0_ from tb_emoji emojilist0_ where emojilist0_.c.. 더보기