본문 바로가기
728x90
반응형

Spring Framework7

[Spring Framework] LazyCollectionOption.EXTRA 으로 SQL 최적화 [Spring Boot] N + 1 Query 문제, default_batch_fetch_size로 해결 Question엔티티 구성은 아래와 같다. @Getter @Setter @Entity public class Question { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @Column(length = 200) private String subject; @Column(columnDefinition = "TEXT") priva 0live-young.tistory.com 앞에서 배치사이즈를 이용해 최적화를 시켜줬다. 하지만 게시물의 답변 개수를 가져올때 한꺼번에 정보를 가져와서 좋지만, 답변의 id, conten.. 2023. 3. 30.
[Spring Framework] N + 1 Query 문제, default_batch_fetch_size로 해결 Question엔티티 구성은 아래와 같다. @Getter @Setter @Entity public class Question { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @Column(length = 200) private String subject; @Column(columnDefinition = "TEXT") private String content; private LocalDateTime createDate; @OneToMany(mappedBy = "question", cascade = CascadeType.REMOVE) private List answerList; } Question엔티티를 게시판 형태로.. 2023. 3. 30.
[Spring Framework] 엔티티 객체 등록날짜/수정날짜 자동화 등록날짜/수정날짜는 데이터의 중요한 정보이다. 등록날짜 컬럼, 수정날짜 컬럼을 사용하는 일이 많아서 알아두면 좋을 것 같아서 글을 작성하게 되었다. 먼저 엔티티 클래스명에 @EntityListeners(AuditingEntityListener.class)를 붙여주고, 데이터 생성시간에는 @CreatedDate, 데이터 수정시간에는 @LastModifiedDate를 붙여준다. package com.example.demo.boundedContext.article.entity; import jakarta.persistence.Entity; import jakarta.persistence.EntityListeners; import jakarta.persistence.GeneratedValue; import ja.. 2023. 3. 20.
[Spring Boot] DB 연결하기 Build.gradle에 dependency 추가 // MySQL인경우 runtimeOnly 'com.mysql:mysql-connector-j' // MariaDB인 경우 runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' application.yml에 driver 및 연결 정보 설정 추가 // MySQL인 경우 server: port: 8080 # 서버 포트(기본값은 8080) spring: thymeleaf: cache: false # 타임리프 캐시 끄기 prefix: file:src/main/resources/templates/ # 타임리프 캐시 끄기(이 설정을 해야 꺼짐) devtools: livereload: enabled: true restart: en.. 2023. 3. 20.
728x90
반응형