JPA

Spring

다양한 연관관계 매핑

다중성은 왼쪽을 연관관계의 주인으로 한다. 다대일의 경우 다(N)가 연관관계의 주인이다. 다대일 단방향(N:1)다대일 관계의 반대 방향은 항상 일대다 관계다.일대다 관계의 반대 방향은 항상 다대일 관계다.외래키는 항상 다쪽에 있다.객체 양방향 관계에서 연관관계의 주인은 항상 다쪽이다. 다대일 양방향(N:1, 1:N)양방향은 외래키가  있는 쪽이 연관관계의 주인이다.항상 다(N)에 외래키가 있다. 주인이 아닌 쪽은 조회를 위한 JPQL이나 객체 그래프를 탐색할 때 사용한다. 양방향 연관관계는 항상 서로를 참조해야 한다.항상 서로를 참조하게 하려면 연관관계 편의 메소드를 작성하는 것이 좋다. 편의 메소드는 한 곳에만 작성하거나 양쪽 다 작성할 수 있다. 하지만 양쪽 다 작성하면 무한루프에 빠질 수 있음으로 ..

Spring

연관관계 매핑

ORM(Object Relational Mapping)에서 가장 어려운 부분은 객체 연관관계와 테이블 연관관계를 매핑하는 일이다. 연관관계 매핑을 위한 핵심 키워드- 방향 : 한쪽만 참조하는 것을 단방향 관계라고 한다. 양쪽 모두 참조하는 것을 양방향 관계라고 한다. 방향은 객체관계에만 존재한다. 테이              블 관계는 항상 양방향이다.- 다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)- 연관관계의 주인 : 객체를 양방향 연관관계로 만들면 연관관계의 주인을 정해야 한다. 단방향 연관관계회원과 팀이 있다.회원은 하나의 팀에 소속될 수 있다.회원과 팀은 다대일 관계다. 객체 연관관계회원 객체와 팀 객체는 단방향 관계다. Member.team필드를 통해서 팀을 ..

Spring

필드와 컬럼 맵핑

@Column객체 필드를 테이블 컬럼에 맵핑한다.속성- name : 필드와 매핑할 테이블의 컬럼 이름- insertable : 엔티티 저장 시 이 필드도 같이 저장한다. false로 지정하면 DB에 저장하지 않는다. (false는 읽기 전용)- updateable : 엔티티 수정 시 이 필드도 같이 수정한다. false로 지정하면 DB에 수정하지 않는다. (false는 읽기 전용)- table : 하나의 엔티티를 두 개 이상의 테이블에 맵핑할 때 사용한다. 지정한 필드를 다른 테이블에 매핑할 수 있다. (거의 사용하지 않는                   다.)- nullable(DDL) : null 값의 허용 여부를 설정한다. false로 설정하면 DDL 생성 시에 not null 제약조건이 붙는다.-..

Spring

엔티티 매핑

JPA의 다양한 매핑 어노테이션 4가지 분류- 객체와 테이블 매핑 : @Entity, @Table- 기본 키 매핑 : @Id- 필드와 컬럼 매핑 : @Column- 연관관계 매핑 : @ManyToOne, @JoinColumn XML을 사용한 맵핑과 어노테이션을 사용한 맵핑 방식이 있지만, 직관적이고, 쉬운 어노테이션 맵핑을 보겠다. @EntityJPA를 사용해서 테이블과 맵핑할 클래스는 @Entity를 필수로 붙여야 한다.@Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라고 부른다.속성- name : JPA에서 사용할 엔티티 이름을 지정주의사항- 기본 생성자는 필수(public or protected)- final 클래스, enum, interface, inner 클래스에는 사용 불가- 저..

Spring

오늘부터 JPA

인턴생활을 시작하면서 매일 회사, 집, 회사, 집만 하면서 너무 아무것도 안하고 시간만 지나가는 느낌을 받았다.이런저런 일들이 너무 많았고, 나의 개발적 발전이 완전히 정체되었다는걸 오늘 아침 깨달았다...그래서!! 오늘부터 다시 개발공부를 시작한다. 어제 새로 들어온 신입생들 백엔드 교육을 해주면서 나도 저럴때가 있었지ㅎㅎ 하면서 뭔가 다시 자극을 받은 것 같다.이제 진짜 내 자신을 위해서 공부하고, 개발하고, 성장해야겠다. 그래서 일단 아직까지도 시작을 못한 주먹구구식 공부를 해 온 JPA를 공부하려고 한다.

LikeLion🦁

뛰슈 - Memeber정의

뛰슈의 멤버들을 관리하기 위해서 member 엔티티를 정의하였다. JPA를 활용하여 데이터베이스를 관리하기 위해서 아래처럼 정의하였다. @Getter @Builder @Entity @AllArgsConstructor @NoArgsConstructor public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @NotEmpty @Column(length = 30) private String memberId; @Column(length = 10) private String name; private String password; } JPA사용을 위한 Repository를 지정 @Repository p..

potatoo
'JPA' 태그의 글 목록