개발일지

JPA 본문

JPA

JPA

devbh 2019. 12. 30. 18:43

JPA

  • ORM( Object Relational Mapping )으로, RDB 데이터 베이스의 정보를 객체지향으로 손쉽게 활용할 수 있도록 도와주는 도구이다.
  • Object( 자바객체 )와 Relation( 관계형 데이터베이스 ) 둘간의 맵핑을 통해서보다 쉽게 적용할 수 있는 기술을 제공한다.
  • 또한 Query에 집중하기보다는 객체에 집중함으로써, 조금 더 비즈니스 모델에 집중할 수 있다.

Entity

  • Camel Case : 단어를 표기할 때 첫 문자는 소문자로 시작하며 띄어쓰기 대신 ( 대문자 )로 단어를 구분 Java의 변수를 선언할 때 camelCase로 선언한다.

    • ex) phoneNumber, createdAt, updatedAt
  • Snake Case : 단어를 표기할 때 모두 소문자로 표기하며, 뛰어쓰기 대신 ( _ )로 표기 DB 컬럼에 사용

    • ex) phone_number, created_at, updated_at
  • API를 정의에 따라 다르지만, 주로 API통신 규격 구간에서는 Snake Case를 많이 사용

  • Entity : JPA에서는 테이블을 자동으로 생성해주는 기능 존재.

  • DB Table == JPA Entity

  • Annotation 용도
    @Entity 해당 Class가 Entity임을 명시
    @Table 실제 DB테이블의 이름을 명시
    @Id Index Primary key를 명시
    @Column 실제 DB Column의 이름을 명시
    @GeneratedValue Primary key 식별키의 전략 설정
  • JPA의 Entity 및 Column은 자동으로 camel case -> DB의 snake_case에 매칭 시켜준다.

Repository

  • 따로 쿼리문을 작성하지 않아도 기본적인 CRUD를 생성해준다.
    • CREATE : 생성
    • READ : 읽기 (SELECT)
    • UPDATE : 업데이트
    • DELETE : 삭제

JPA 연관관계 설정

  • 관계 Annotation
    일대일 @OneToOne
    일대다 @OneToMany
    다대일 @ManyToOne
    다대다 @ManyToMany

'JPA' 카테고리의 다른 글

JPA Relation 속성  (0) 2020.01.09
Comments