memostack
article thumbnail
JPA Fetch 종류 (LAZY Fetch와 EAGER Fetch)
Backend/Spring Boot 2021. 3. 27. 17:38

JPA의 Fetch Fetch는 Entity를 조회할때, 그 Entity와 연관관계가 있는 다른 Entity의 정보를 어느 시점에 가지고 오는지 결정해준다. Fetch의 타입은 2가지가 있다. LAZY Fetch Type EAGER Fetch Type LAZY Fetch Type (지연 로딩) Lazy는 '게으른'이란 뜻을 가지며, 사전 의미처럼 LAZY Fetch 타입은 실제로 엔티티 조회시에 바로 가지고 오지 않고, 연관 관계에 있는 엔티티를 참조할때 그때 가지고 온다. 예를들어, 사용자(User) 와 사용자 권한(Role) 정보를 담은 Entitiy가 있고, 2개의 Entity는 서로 1:1 관계를 이룬다고 하자 테스트 코드 @Entity @Table(name = "user") @Getter @Bu..

article thumbnail
SpringBoot, Junit5에서 JPA Repository 테스트
Backend/Spring Boot 2021. 1. 6. 17:10

사전 준비 테스트를 위해, Entitiy와 Repository를 생성한다. Entity 생성 Role.java @Entity @Table(name = "role") @Getter @Builder @NoArgsConstructor @AllArgsConstructor(access = AccessLevel.PROTECTED) @ToString public class Role { // PK @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; // 권한 이름 @Column(nullable = false, length = 50) private String roleName; } Repository 생성 RoleRepository.java ..

article thumbnail
Spring Boot, JPA에서 boolean 처리 (@Converter, @Convert 사용)
Backend/Spring Boot 2021. 1. 5. 15:39

엔티티에서는 java의 boolean을 사용하고, Database에서는 Y 또는 N으로 처리하고 싶을때, @Converter 어노테이션을 사용하여 해결할 수 있다. 컨버터 객체 생성 BooleanToYNConverter.java @Converter public class BooleanToYNConverter implements AttributeConverter { /** * Boolean 값을 Y 또는 N 으로 컨버트 * * @param attribute boolean 값 * @return String true 인 경우 Y 또는 false 인 경우 N */ @Override public String convertToDatabaseColumn(Boolean attribute) { return (attrib..

article thumbnail
Spring Security + JPA + MySQL + Mustache 를 이용한 로그인 구현
Backend/Spring Boot 2020. 12. 3. 15:49

목표 간단한 로그인 기능을 구현 Spring Security 를 사용 JPA와 MySQL을 사용 Mustache 템플릿 엔진 사용 MySQL 설치 MySQL 설치는 본 글에서는 다루지 않는다. 아래글 참고 2020/10/30 - [Database/RDB] - MySQL 설치하기 (Mac OSX) MySQL 설치하기 (Mac OSX) MySQL 설치 본 글에서는 Homebrew 를 이용하여 MySQL 을 설치한다. $ brew update $ brew install mysql 만약, 특정 버전을 따로 설치하고 싶다면 아래 명령어를 수행한다. 그리고, 원하는 버전의 mysql을 설치한.. memostack.tistory.com Spring Project 생성 start.spring.io/에서 메이븐 프로젝트..

article thumbnail
JPA 오류 해결 - Unable to locate Attribute with the the given name [Column]
Backend/Spring Boot 2020. 11. 14. 23:21

UserRepository.java 아래 메소드에서 계속 문제가 발생했다. @Repository public interface UserRepository extends JpaRepository { Optional findFirstByPhoneNumberOrderByIdDesc(String phoneNumber); } 에러 내용 java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.Optional com.example.study.repository.UserRepository.findFirstByPhoneNumberOrderByIdDesc(java.lang.String)! Unable to ..

article thumbnail
Spring Boot 와 MySQL & JPA 연동하기 (Gradle 프로젝트)
Backend/Spring Boot 2020. 11. 11. 21:12

MySQL 설치 설치는 아래 글 참고 2020/10/30 - [Database/RDB] - MySQL 설치하기 (Mac OSX) MySQL 설치하기 (Mac OSX) MySQL 설치 본 글에서는 Homebrew 를 이용하여 MySQL 을 설치한다. $ brew update $ brew install mysql 만약, 특정 버전을 따로 설치하고 싶다면 아래 명령어를 수행한다. 그리고, 원하는 버전의 mysql을 설치한.. memostack.tistory.com 스키마 & 테이블 생성 유저 생성 및 권한 부여 CREATE USER test_user@localhost IDENTIFIED BY '1234'; GRANT ALL PRIVILEGES ON STUDY_DB.* TO test_user@localhost;..

article thumbnail
Spring Boot 에서 JPA 사용하기 (MySQL 사용)
Backend/Spring Boot 2020. 10. 31. 21:52

MySQL 설정 MySQL 설치 MySQL 설치는 아래 글 참고 2020/10/30 - [Database/RDB] - MySQL 설치하기 (Mac OSX) MySQL 설치하기 (Mac OSX) MySQL 설치 본 글에서는 Homebrew 를 이용하여 MySQL 을 설치한다. $ brew update $ brew install mysql 만약, 특정 버전을 따로 설치하고 싶다면 아래 명령어를 수행한다. 그리고, 원하는 버전의 mysql을 설치한.. memostack.tistory.com 데이터베이스 생성 우선 예제에서 사용할 데이터 베이스 및 테이블을 생성한다. 본 글에서는 TEST_DB를 생성한다. mysql> CREATE DATABASE TEST_DB -> DEFAULT CHARACTER SET UTF..