JPA로 조회를 하다보면 연관관계에 데이터를 모두 가져오다 보니 때때로 노출하고 싶지 않은 데이터도 가져오게 된다. 그럴때 쓰는 방법 소스는 이전글을 참조 2019/03/20 - [JPA] - [JPA] manytoone n+1 문제? 예를 들어 아래와 같은 member entity를 가지고 있다고 할때 @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String name; private String phone; private String address; @ManyToOne @JoinColumn(name="team_id") private Team team; } api에는 id와 name만 내..
JPA에서 @manytoone으로 다른 entity와 join했을 경우 list를 출력하면, 리스트를 한번 조회하고, join column의 id 수만큼 다시 select를 하게된다. Member.java@Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String name; @ManyToOne @JoinColumn(name="team_id") private Team team; }MemberRepo.javapublic interface MemberRepo extends JpaRepository {}Team.java@Entity @Getter @Setter public class Team { @..
entity에 Date형인 orderDate가 존재한다고 했을 때 Specification을 이용한 between 검색을 하는 방법이다. 물론 interface에서 바로 해도 되지만 복합적으로 조건을 처리해줘야할 때 Specification은 유용하게 사용된다. 파라미터로 fromDt="2017/08/23" , toDt="2017/08/23" 받고 단순히 아래와 같이 했을 때 제목과 같은 오류가 났다. public static Specification betweenDate(String fromDt, String toDt) {return (root, query, cb) -> {if (fromDt.equals("") && toDt.equals(""))return null;return cb.between(ro..
Problem Entity 데이터 조회 중 아래와 같은 오류 발생 Could not write JSON: No default constructor for entity: Solution 말그대로 생성자가 없어서 생기는 오류. 해당 Entity에 기본 생성자를 생성해준다.