본문 바로가기
Spring | SpringBoot

[스프링 스터디] 2주차. JPA

by saniii 2022. 5. 7.

 

 

 

?? 각 애노테이션에 대해서 모두 알고 쓸 것 아닌가? 그럼 애노테이션은 따로 어떻게 공부하는지?

애노테이션으로 쓸 수 있는 옵션에 대해서 어떻게 공부하는지?

 

 

 

 

 

 

이거 final 왜쓸까요?

 

 

 

 

컬럼 이름이 이상하다. 

 

 

 


# 배운 점

  • 관계형 데이터베이스 (RDB, Relational DataBase)
  • 서로 지향하는 바가 다른 두 영역의 중간에서 JPA를 통해 패러다임 일치를 시킬 수 있다.  
    • 관계형 데이터베이스 : 어떻게 데이터를 저장할지에 중점을 둔 기술 
      • 관계형 데이터베이스를 사용하기 위해서 각 테이블마다 반복적인 CRUD SQL이 생성되어야한다.
    • 객체지향 언어 : 메시지를 기반으로 기능과 속성을 한 곳에서 관리하는 기술
  • JPA <- Hibernate <- Spring Data JPA
    • 구현체 교체의 용이성
    • 저장소 교체의 용이성
  • 도메인 : 게시글, 댓글, 회원, 결제 등 소프트웨어에 대한 요구사항 혹은 문제 영역
  • Entity 클래스에서는 절대 Setter 메소드를 만들지 않는다. 
    • 생성자를 통해서 최종값을 채워 DB에 삽입 - 지금 채워야할 필드가 무엇인지 명확히 지정할 수 없음
    • @Builder를 통해 제공되는 빌더 클래스를 사용
  •  

 

 

 

 

 

 

# 몰랐던 어노테이션과 함수

  • @Entity : 테이블과 링크될 클래스임을 나타냄
  • @Id : 해당 테이블의 PK 필드를 나타냄
  • @GeneratedValue : PK 생성 규칙을 나타냄
  • @Column : 해당 클래스의 필드는 모두 칼럼이 된다.  
    • 주로 변경하고 싶은 옵션이 있을 때 사용
  • @NoArgsConstructor : 기본 생성자 자동 추가
  • @Builder : 해당 클래스의 빌더 패턴 클래스를 생성 
  • @After : JUnit에서 단위 테스트가 끝날 때마다 수행되는 메소드를 지정
  • postsRepository.
    • save : 테이블 posts에 insert/update 쿼리를 실행
    • findAll : 테이블 posts에 있는 모든 데이터를 조회해오는 메소드
  •  

 

 

 

 

 

 

 

개인적으로 자바공부다시하기 

댓글