분류 전체보기183 JPA Fetch Join과 페이징 문제 JPA 로 개발을 할때, 컬렉션을 Fetch Join 하면 페이징 조회 시 메모리에서 페이징 처리하는 문제가 있다. 데이터가 적으면 크게 상관은 없겠지만, 데이터가 많다고 한다면 큰 문제가 발생하게 된다. 아래와 같은 경고 메시지가 출력된다. 경고 메시지 HHH000104: firstResult/maxResults specified with collection fetch; applying in memory! 아래와 같이 엔티티를 정의해 보자 @Entity public class Category { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; @ManyToMany(mappedBy = .. 2020. 9. 22. JPA - ManyToMany 관계시 Set과 List의 차이 JPA 로 개발을 할때, @ManyToMany 관계를 맺는 경우가 있는데, 이때 Set 과 List 의 차이점을 알고 사용하도록 하자. Category - Article 관계가 n:m 이라고 가정을 하자. @ManyToMany 관계시 List 를 사용하였을 경우 @Entity public class Category { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; @ManyToMany(mappedBy = "categories") private List articles = new ArrayList(); public void deleteArticle(Article article) { ar.. 2020. 8. 11. SpringBoot - http request와 response 로깅하기 웹 어플리케이션을 운영하다 보면 http의 request와 response 로그가 필요한 경우가 있다. 기본적으로 SpringBoot 에서는 http의 request, response 를 로깅하지 않으므로 개발자는 추가로 설정을 해줘야 한다. 먼저, Spring MVC Request Lifecycle 을 이해해야 함으로 아래 그림을 참고 하자 본 글에서는 Filter와 HandlerInterceptor를 사용하여 로깅을 할 예정이다. Http logging 방법은 2가지가 있다. Custom Request, Response 로깅 1. RequestWrapper와 ResponseWrapper 클래스를 만든다. Wrapper를 만드는 이유는 HttpServletRequest 의 InputStream 은 오직.. 2020. 8. 5. Spring 에서 Service 인터페이스 사용? Spring 에서 Service 클래스를 만들때 인터페이스를 사용 한다? 안한다? public interface MyService { void doSomething(); } @Service public class MyServiceImpl implements MyService { @Override public void doSomething() { System.out.println("hello Im Impl Service"); } } 보통 스프링 개발할때 서비스를 위와 같은 패턴으로 사용은 하지만, 늘 그래왔듯이 사용하는 개발자가 적지 않다라는 것을 알았다. 그래서 궁금해서 블라인드에 투표를 올려봤다. (꽤 많은 분들이 투표를 해줬다ㅎㅎ) 203명의 개발자분들이 투표를 해주셨고, 사용한다라는 개발자가 근소한.. 2020. 5. 20. 이전 1 ··· 41 42 43 44 45 46 다음