본문 바로가기

[kotlin] JPA 7: Spring Boot에서 JPQL과 @Query 들어가기Repository를 사용해 쿼리 메소드로 어느정도 데이터 처리하는데 문제는 없지만 정교하고 복잡한 처리를 할 경우 한계가 있다. 이런 한계를 JPQL을 사용해서 다양한 쿼리를 실행할 수 있다. Spring Data에서 @Query을 사용해서 쉽게 JPQL을 사용할 수 있도록 만들어준다. 사전에 Ansi SQL 학습을 권장한다.작성자: http://ospace.tistory.com/ (ospace114@empal.com)환경 구성앞으로 사용할 엔티티는 총 3개로 아래와 같이 구성된다... 더보기
[kotlin] JPA 6: Spring Boot에서 Repository 활용 들어가기 데이터베이스에서 데이터를 조회하거나 저장하기 위해서 연동해주는 객체가 필요하다. 이를 리포지토리라고 한다. 일반적인 리포지토리이면 실제 데이터베이스에 데이터를 저장하거나 조회하기 위한 JDBC를 사용하거나 라이브러리 사용할 경우 쿼리를 작성해 줘야한다. 그러나 JPA에서는 더 쉽게 자동으로 처리해준다. 어떻게 할 수 있는지 살펴보자. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 리포지트리 구조 Spring Data에서 리포지토리를 위한 Repository 인터페이스를 제공한다. 이 인터페이스를 통해 데이터베이스와 연동된다. 아래는 Spring Data JPA에서 제공되는 Repository의 상속 트리 구조이다. Repository 인터페이스를.. 더보기
[kotlin] JPA 5: Spring Boot에서 Entity 고급관계 들어가기 JPA에서 연관관계 말로 다양한 관계를 표현할 수 있다. 클래스 상속 관계, 내포관계, 콜렉션 데이터 표현 등 다양하다. 이번에는 이전 연관간계 외에 엔티티에서 사용되는 다양한 관계를 살펴볼려고 한다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 어노테이션 목록 MappedSuperclass Inheritance DiscriminatorColumn DiscriminatorValue Embeddable Embedded AttributeOverride SecondaryTable ElementCollection CollectionTable PrimaryKeyJoinColumn ForeignKey Index @MappedSuperclass 어노테이션 .. 더보기
[kotlin] JPA 4: Spring Boot에서 Entity 연관관계 들어가기 엔티티는 여러 개가 존재하고 엔티티 간에 관계가 존재하다. 이런 관계는 대부분 데이터베이스 기준으로 ER 다이어그램에서 카디널리티(cardinality)에 해당한다. 결국 데이터베이스에 테이블 간에 관계를 엔티티로 매핑하는 방식을 기술한다. 이런 엔티티 간에 관계를 연관관계라고 한다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 샘플 아래는 샘플로 사용할 엔티티 클래스 다이그램이다. 사용자가 서비스에 가입하고 게시물을 관리하기위한 구조이다. 앞으로 다룰 엔티티 연관관계를 다루기 위해 만든 샘플이므로 참고만 하시기 바란다. 연관관계 관계는 다중성과 방향을 알아야 한다. 다중성은 두 대상이 서로 1:1, 1:N, N:M 관계인지를 의미한다. 방향은.. 더보기
[kotlin] JPA 3: Spring Boot에서 Entity 매핑 확장 들어가기 이번에는 엔티티 정의위한 확장된 어노테이션에 대해서 다룰려고 한다. 더 다양한 타입과 알아두면 좀더 도움이 되는 어노테이션에 대해서 다룰 예정이다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 엔티티 정의 엔티티 정의를 위한 추가적인 어노테이션이다. @Enumerated: enum 타입 매핑 @Temporal: 날짜 타입 매핑 @Transient: 매핑 무시 @Lob: BLOB CLOB 타입 매핑 @CreationTimestamp: insert 시간 자동 저장 @UpdateTimestamp: update 시간 자동 저장 @CreateDate: 엔티티 생성시간 @LastModifiedDate: 엔티티 변경시간 @CreatedBy: 엔티티 생성 사.. 더보기
[kotlin] JPA 2: Spring Boot에서 Entity 매핑 기본 들어가기 엔티티(Entity)에서 세부적인 정의를 살펴볼려고 한다. 먼저 엔티티 자체 정의하는 방법을 살펴보자. 엔티티와 데이터베이스 테이블과 매핑하는 방법을 위주로 먼저 살펴볼려고 한다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 엔티티 정의 엔티티 정의를 위한 기본 어노테이션으로 다음과 같다. @Entity: 엔티티 선언 @Table: 매핑할 테이블 선택 @Id: 테이블 기본키 사용할 속성 지정 @GeneratedVaue: 키값 생성 전략 @Column: 매핑할 컬럼 선택 이미 몇 개는 앞에서 보았던 어노테이션도 있다. @Entity 어노테이션 엔티티를 지정할때 사용하는 어노테이션이다. 데이터베이스 테이블에 매핑할 엔티티를 정의한다. 에티티를 지정.. 더보기
[kotlin] JPA 1: Spring Boot에서 간단한 CRUD 들어가기 Spring Boot 기반의 Spring Data JPA를 사용하여 API 서버 구축할려고 한다. 복잡한 JPA 개념을 건너뛰고 바로 Spring Boot에서 기본적인 CRUD 부터 시작해보자. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 기본환경 먼저 kotlin과 Spring Boot에서 Maven 빌더를 사용한다고 가정하겠다. 기본적인 Spring Boot 프로젝트가 구성되었다면 아래와 같은 dependency을 추가해줘야 한다. org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 spring-boot-starter-data-jpa에 의해서 기본적인 JPA 관련 .. 더보기

반응형