Spring
-
Spring JPA(5) 게시판Spring 2020. 2. 18. 17:40
github : https://github.com/hodolee246/intellij-on-my-own/tree/master/demo Specification Specification을 적용하기 위해서는 Repository에 JpaSpecificationExecutor 인터페이스를 추가로 상속받아야 한다. public interface BoardRepository extends JpaRepository, JpaSpecificationExecutor { Page findAll(Specification specification, Pageable pageable); } Specification 클래스를 자신의 검색 조건에 맞게 재정의 해준다. Predicate (criteria에서 제공하는 클래스) Speci..
-
Spring Boot HikariCPSpring 2020. 2. 4. 13:51
DB Connection Pool 쉽게 설명을 하자면 클라이언트가 서버로부터 값을 받길 원하는 과정에서 가장 오래걸리는 시간은 바로 데이터베이스에 처음 연결하는 커넥션 부분이다. 이러한 시간을 줄이기 위해서 Spring Boot 에서는 데이터베이스와 연결된 커넥션을 미리 생성을 해서 풀속에 저장해 두고 있다가 필요할 때 커넥션 풀에서 쓰고 반환하는 DB Connection Pool 인 HikariCP를 사용한다. HikariCP 기존의 사용하던 Tomcat JDBC Connection Pool보다 가볍고(130KB), 빠르고, 단순하고, 안정적이며, zero-overhead를 자랑한다. 설정방법 Spring Boot 2.0이상 버전에서는 HikariCP가 default로 잡혀있기에 pom.xml OR g..
-
Spring JPA(4) 연관관계 매핑Spring 2020. 1. 30. 17:44
참고 : https://dotheright.tistory.com/267?category=777106 https://victorydntmd.tistory.com/208 연관관계 매핑 객체의 참조와 테이블의 외래키 매핑을 의미한다. JPA에서는 JDBC( Mybatis ) 를 사용했을 때와 달리 연관 관계에 있는 상대 테이블의 PK를 멤버변수로 갖지 않고, 엔티티 객체 자체를 통째로 참조한다. 1. 방향 단방향 관계 : 두 엔티티가 관계를 맺을 때, 한 쪽의 엔티티만 참조하고 있는 것을 의미한다. 양방향 관계 : 두 엔티티가 관계를 맺을 때, 양 쪽이 서로 참조하고 있는 것을 의미한다. 관계가 있는 엔티티는 다음 중 하나의 관계를 가지게 된다. Many To One - ( N : 1 ) 다대일 One To ..
-
Spring JPA(3) CRUD 기본 예제Spring 2020. 1. 30. 14:39
Github https://github.com/hodolee246/on-my-own/tree/master/JPASample03 MemberController.java package com.example.JPAsample03.member.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Control..
-
Spring JPA(2) - 엔티티 매핑Spring 2020. 1. 29. 15:47
참고 블로그 https://dotheright.tistory.com/266?category=777106 https://doublesprogramming.tistory.com/260 1. 엔티티 매핑 종류 객체, 테이블 매핑 : @Entity, @Table 필드, 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne, JoinColumn ※ 객체, 테이블 매핑 주의사항 기본생성자 필수(NoArgs) final, enum, interface, inner 클래스는 사용 불가능 저장할 필드에 final 사용 불가능 2. 테이블 매핑 @Table 어노테이션은 엔티티와 매핑할 테이블을 지정하고, 생략시 엔티티 이름을 테이블 이름으로 사용한다. 속성으로는 다음과 같다. name ..
-
Spring JPA(1) ORM, Hibernate(JPA), 영속성Spring 2020. 1. 22. 18:10
ORM(Object Relational Mapping) 객체형 데이터와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말한다. ( SQL을 따로 작성하지 않아도 매핑 설정만으로 데이터 베이스의 테이 블 데이터를 JAVA 객체로 전달받을 수 있다. ) → ORM은 DBMS에 종속적이지 않음 → 개발 로직 코드에 집중가능 Hibernate ORM 프레임워크 → DB가 변경되어도 SQL를 수정할 필요가 없음 JPA(Java Persistent API) Hibernate, OpenJPA, TopLink, TopLink Essentials 등 ORM 구현체의 표준 인터페이스 JavaSE, JavaEE를 위한 영속성 관리, ORM을 위한 표준 기술 → DB변동이 생겨도 Entity만 변경해주면 됨 → 자동..
-
Spring Boot DB 오류해결Spring 2020. 1. 20. 15:07
0. Github https://github.com/hodolee246/on-my-own/tree/master/DBConfig 1. 개요 Spring Boot 프로젝트에서 오류 원인 및 해결방법 "Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class" ("데이터 소스를 구성하지 못하였습니다.") 2. 문제 및 원인 Maven 기준 pom.xml에 데이터베이스를 사용하기 위한 dependency가 존재하는 경우 @SpringBootApplication 에서 자동으로..