[스프링부트] - JPA를 알아보자
·
Spring
JPA란?Jakarta Persistence API는 ORM(Object Relation Mapping)기술 표준으로 사용되는 인터페이스의 모음이다.즉 실제로 구현된 클래스가 아니라 실질적으로 구현된 클래스와 매핑시켜주기 위한 프레임워크(도구)이다.강의에서 들은 사용 단계이다.테이블 생성하고 활용할 때 -> Entity 클래스에서 그 역할을 함(Entity클래스는 테이블을 생성한다. 가방 역할을 함엔티티클래스는 DTO 그자체로 볼 수 있다.)데이터 제어 -> RepositoryfindById(), findAll(), save(), count()페이징연관관계 N:1 @ManyToOne1:N @OneToMany1:1 @OneToOne조건 검색 -> QueryMthod 특징DAO와 DB테이블의 의존성 문제를..
[Spring] - 스프링부트 JPA Auditing으로 생성시간/수정시간 자동화하기
·
Spring
보통 entity에는 해당 데이터의 생성시간과 수정시간을 포함한다.※entity란?엔티티는 데이터베이스 테이블과 매핑되는 클래스이다.즉,DB의 테이블을 객체로 표현한 것이다.package com.jojoldu.book.springboot.domain.posts;import com.jojoldu.book.springboot.domain.BaseTimeEntity;import lombok.Builder;import lombok.Getter;import lombok.NoArgsConstructor;import javax.persistence.*;//롬복의 어노테이션(클래스 내 모든 필드의 Getter 메소드를 자동생성)@Getter//기본 생성자 자동추가@NoArgsConstructor//JPA의 주요 어노테..
[Spring] - Spring Data JPA 테스트코드 작성하기
·
Spring
앞 포스팅에서 만든 JPA코드를 테스트하는 테스트코드를 만들어보겠다. (1) domain.posts 패키지안에 PostsRepositoryTest클래스 생성하기test 디렉토리에 domain.posts 패키지를 생성하고, 테스트 클래스는  PostsRepositoryTest란 이름으로 생성한다.위와 같이 생성하였으면 해당 PostsRepositoryTest에서는 save와 findAll기능을 테스트 할 에정이다.(2) PostsRepositoryTest코드 작성package com.jojoldu.book.springboot.web.domain.posts;import com.jojoldu.book.springboot.domain.posts.Posts;import com.jojoldu.book.springb..
[Spring] - JPA란?
·
Spring
(1)JPA의 등장배경웹 서비스 개발하고 운영시 피할 수 없는 문제가 데이터베이스를 다루는 일이다.옛날에 스프링을 공부할 때는 iBatis와 같은 SQL매퍼를 이용해서 DB쿼리를 작성했다고 한다.그러다보니 개발보다 SQL을 다루는 시간이 더 많아졌다. 그래서 JPA라는 자바 표주 ORM(object relational Mapping)※ORM이란?객체와 관계형 DB의 데이터를 자동으로 매핑해주는 것을 말한다.객체지향은 클래스를 사용, 관계형 DB는 테이블을 사용하는 객체 모델이랑 관계형 모델간의 불일치가 발생한다.ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결해준다.DB 데이터 객체 필드객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.Persistant API라고도 ..