
본문에 앞서 예시를 하나 들겠다. 다음과 같이 멤버 엔티티와 팀 엔티티가 N:1 연관관계를 맺고 있다고 해 보자.이를 위한 엔티티 클래스는 아래와 같이 간단하게 작성했다.@Entity@Getter @Setterpublic class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @ManyToOne @JoinColumn(name = "team_id") private Team team;}@Entity@Getter @Setterpublic class Team { @Id @GeneratedValue @Column(name = "team_id"..

Goals영속성 컨텍스트란?엔티티 생명 주기영속성 컨텐스트의 이점영속성 컨텍스트란?JPA를 이해하는데 가장 중요한 용어는 영속성 컨텍스트(persistence context)다. 우리말로 해석해 보면 ‘엔티티를 영구 저장하는 환경’이라는 뜻이다. JPA를 사용해 엔티티(객체)를 데이터베이스에 저장하기 전에 항상 이 영속성 컨텍스트라는 곳에 먼저 저장해야 한다. 다만, 영속성 컨텍스트에 엔티티를 저장한다고 해서 데이터베이스에 저장되는 것은 아니다. 그럼에도 엔티티를 굳이 영속성 컨텍스트에 먼저 저장하는 이유는 다양한 이점이 있는데, 이는 뒤에서 설명하겠다.엔티티 매니저(EntityManager)로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리할 수 있게 된다. 일반적..

Goals QueryDSL 개요 VSCode에서 Gradle로 QueryDSL 설정 방법 조회 방법 동적 쿼리를 위한 BooleanBuilder QueryDSL 개요 보통 JPQL builder로써 JPA Criteria와 QueryDSL이 자주 비교된다. Criteria는 문자가 아닌 코드로 JPQL을 작성하므로 문법 오류를 컴파일 단계에서 잡을 수 있고, IDE의 자동완성 기능의 도움도 받을 수 있다. 하지만 그 구조가 너무 복잡하고 어렵다. 그에 반해 Criteria와 비슷한 장점을 지니면서도 쉽고 간결하며, 그 모양도 쿼리와 비슷하게 개발할 수 있는 프로젝트가 QueryDSL이다. 아래는 Criteria를 사용해서, searchCriteria라는 검색 조건에 따라 두 테이블을 조인하는 동적 쿼리를..

보통 Spring에서 JPA를 사용할 때, 엔티티 매니저(EntityManager) 객체를 Spring 컨테이너로부터 주입 받아 사용한다. 하지만 사실, 우리가 Java 어플리케이션에서 JPA를 사용하기 위해서는 가장 먼저 엔티티 매니저 팩토리(EntityManagerFactory)라는 인터페이스 객체를 먼저 생성해야 한다. 지금까지는 Spring 컨테이너의 도움을 받았기 때문에 이 엔티티 매니저 팩토리의 존재를 몰라도 됐을 것이다. 본 포스팅에서는 컨테이너의 도움 없이, Java SE에서 JPA를 사용하기 위해서는 어떤 과정이 필요하며, 엔티티 매니저 팩토리와 엔티티 매니저에 대해 정리해 보려고 한다. Goals 엔티티 매니저 팩토리 ? 엔티티 매니저 ? 엔티티 매니저가 제공하는 주요 메서드 스프링 프..
- Total
- Today
- Yesterday
- git merge
- 선형 회귀
- 스프링 mvc
- spring mvc
- 스프링 컨테이너
- 쉽게 배우는 운영체제
- Python Cookbook
- 파이썬 for Beginner 솔루션
- 김영환
- 지옥에서 온 git
- 생활코딩 javascript
- Thymeleaf
- 스프링 테스트
- Computer_Networking_A_Top-Down_Approach
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- git branch
- 방명록 프로젝트
- Gradle
- 패킷 스위칭
- 스프링
- Spring Boot
- 파이썬 for Beginner 연습문제
- 프로그래머스
- Spring Data JPA
- jsp
- 쉘 코드
- git
- 운영체제 반효경
- JPA
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |