티스토리 뷰

1. Querydsl 설정하기

2. H2 Database

3. JPA yml 설정

 

안녕하세요

앞으로 여러가지 배우기위해 필요한 도메인을 만들어보겠습니다.

 

- Member.java

@Entity
@Getter @Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@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 = 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);
        }
    }

    public void changeTeam(Team team) {
        this.team = team;
        team.getMembers().add(this);
    }
}

> Lombok 설명

`@Setter`: 실무에서 가급적 Setter는 사용하지 않기

`@NoArgsConstructor AccessLevel.PROTECTED`: 기본 생성자 막고 싶은데, JPA 스팩상 PROTECTED로 열어두어야 함

`@ToString`은 가급적 내부 필드만(연관관계 없는 필드만)

`changeTeam()` 으로 양방향 연관관계 한번에 처리(연관관계 편의 메소드)

 

- Team.java

@Entity
@Getter@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@ToString(of = {"id", "name"})
public class Team {

    @Id @GeneratedValue
    @Column(name = "team_id")
    private Long id;

    private String name;

    @OneToMany(mappedBy = "team")
    List<Member> members = new ArrayList<>();

    public Team(String name) {
        this.name = name;
    }
}

 

Member와 Team은 양방향 연관관계, Member.team 이 연관관계의 주인,

Team.members 는 연관관계의 주인이 아님,

따라서 Member.team 이 데이터베이스 외래키 값을 변경, 반대편은 읽기만 가능

 

 

감사합니다.

 

참고

www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84#

'Dev > Spring Data' 카테고리의 다른 글

[Querydsl] 6. Querydsl Where절  (0) 2021.01.19
[Querydsl] 5. JPQL vs Querydsl 비교  (0) 2021.01.19
[Querydsl] 3. JPA yml 설정  (0) 2021.01.19
[Querydsl] 2. H2 Database  (0) 2021.01.19
[Querydsl] 1. Querydsl 설정하기  (0) 2021.01.19
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함