Querydsl

[실전! Querydsl] 02. 예제 도메인 모델

kittity 2024. 7. 30. 00:10

실전! Querydsl 강의를 듣고 정리한 내용입니다.
➡️ 강의 : https://www.inflearn.com/course/querydsl-실전/dashboard

➡️ 코드 : https://github.com/leehanna602/querydsl

 

실전! Querydsl 강의 | 김영한 - 인프런

김영한 | Querydsl의 기초부터 실무 활용까지, 한번에 해결해보세요!, 복잡한 쿼리, 동적 쿼리는 이제 안녕! Querydsl로 자바 백엔드 기술을 단단하게. 🚩 본 강의는 로드맵 과정입니다. 본 강의는 자

www.inflearn.com

 

0. 참고) 코드에서 사용하는 entity

  • member
    package study.querydsl.entity;
    
    import lombok.*;
    
    import javax.persistence.*;
    
    @Entity
    @Getter @Setter
    // protected 인 기본 생성자 만들어줌
    @NoArgsConstructor(access = AccessLevel.PROTECTED)
    // team이 들어가면 안됨! team이 들어가면 team의 member 그리고 member의 team 무한루프 발생하면서 에러
    @ToString(of = {"id", "username", "age"})
    public class Member {
    
        @Id @GeneratedValue
        @Column(name = "member_id")
        private Long id;
        private String username;
        private int age;
    
        // 연관관계 주인 (외래키 있는 곳)
        @ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name = "team_id")
        private Team team;
    
        public Member(String username){
            this(username, 0);
        }
    
        public Member(String username, int age){
            this(username, age, null);
        }
    
        public Member(String username, int age, Team team){
            this.username = username;
            this.age = age;
            if(team != null){
                changeTeam(team);
            }
        }
    
        private void changeTeam(Team team) {
            this.team = team;
            team.getMembers().add(this);
        }
    
    }

 

  • teams
    package study.querydsl.entity;
    
    import lombok.*;
    
    import javax.persistence.*;
    import java.util.ArrayList;
    import java.util.List;
    
    @Entity
    @Getter @Setter
    @NoArgsConstructor(access = AccessLevel.PROTECTED) // protected 인 기본 생성자 만들어줌
    @ToString(of = {"id", "name"})
    public class Team {
    
        @Id @GeneratedValue
        @Column(name = "team_id")
        private Long id;
        private String name;
    
        @OneToMany(mappedBy = "team")
        private List<Member> members = new ArrayList<>();
    
        public Team(String name){
            this.name = name;
        }
    
    }


728x90

'Querydsl' 카테고리의 다른 글

[실전! Querydsl] 03. 기본 문법  (0) 2024.07.30
[실전! Querydsl] 01. 프로젝트 환경설정  (0) 2024.07.30