기본 콘텐츠로 건너뛰기

글

라벨이 JPA인 게시물 표시

[SpringBoot] Spring Data JPA를 알아보자 [2탄 엔티티를 다루기]

이번 시간에는 엔티티 클래스 설계서 부터 테스트까지 진행해 보도록 하겠다. 1. 엔티티 클래스 설계   - JPA는 자동으로 테이블을 생성하는 기능을 가질 수 있다. 다음 2가지 방법이 있다.     1) SQL을 이용해 테이블을 먼저 생성하고 엔티티 클래스를 만드는 방법     2) JPA를 이용해 클래스만 설계하고 자동으로 테이블을 생성하는 방법   - 이중에서 2)번 방법을 알아보자.   - JPA 엔티티 클래스를 생성하는 작업은 다음 과정을 거친다     1) 클래스 설계     2) 각종 애너테이션을 이용해 제약 조건 추가 설정     3) 엔티티 간 연관관계 설정 1.1 엔티티 클래스 설계    package com . example . sutdy . domain ; import lombok.Getter ; import lombok.Setter ; import lombok.ToString ; import java.sql.Timestamp ; @Getter @Setter @ToString public class Board { private Long bno; private String title; private String writer; private String content; private Timestamp regdate; private Timestamp updatedate; }   - 위와 같이 일반적인 방법으로 클래스를 만들어 봤다. 다음 JPA 어노테이션에 관해 알아보고 붙여보자 1.1.2 JPA 어노테이션   - @Id : 각 엔티티를 구별할수 있도록 식별 ID부과.(일종의 primary key로 보면된다). 모든 엔티티에 반드시 지정하자.   - @Column : 인스턴스 ...

[SpringBoot] Spring Data JPA를 알아보자 [1탄 JPA소개 및 설정]

Spring Data JPA   윈도우 프로그래밍과 java 어플리케이션 개발 과정 중, DB를 사용하기 위해 이런 저런 환경설정으로 매우 많은 번거로움이 있었다. JPA를 알게 된 이후로 이 모든 설정 및 쿼리 사용에 대한 부담감이 완전 줄어 든 데에 Spring을 만든사람에게 박수를 보내고 싶다.  자 그럼 이번 시간은 JPA가 무엇이고, JPA를 사용하기위한 환경설정을 알아보자. 1. JPA소개   - Spring Data JPA는 JPA(Java Persistence API)란 기술을 스프링에서 개발할 수 있도록 돕는 라이브러리다.   - 다양한 데이터베이스에 종속적인 SQL문 없이도 개발이 가능해졌다.   - Java를 이용해 데이터 관리 기법의 하나의 스펙 표준이다.   - JPA를 구현한 구현체 중 스프링 부트에선 'Hibernate'를 이용한다.   - JPA를 이용하면 Java로 작성된 클래스, 객체, 데이터베이스 테이블, 레코드를 자동으로 관리된다. 2. 용어를 알아보자   - 엔티티(Entity) : 데이터베이스상 데이터로 관리하는 대상. JPA에선 Java를 이용해 엔티티 관리하는데, 엔티티 타입의 존재는 클래스이다.   - 엔티티매니저 : 자신이 관리해야 하는 엔티티 객체들을 '영속컨텍스트'란 곳에 넣어 객체들의 생사를 관리한다.   - 영속 컨텍스트 : JPA가 엔티티 객체들을 모아두는 공간이다. 다음 상태가 있다.     1) 비영속(New) : Java 영역에 객체만 존재하고, 데이터베이스와 연동이 없는 상태.     2) 영속(Managed) : 데이터베이스에 저장되고 메모리상에도 존재. 객체가 영속 컨텍스트에 들어가고 id(PK)로 엔티티 객체를 꺼내 사용할 수 있다.     3) 삭제(Removed) : 데이터베이스상에서 삭제된 상태  ...