일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링
- Varchar
- 동시성
- gc
- Lock
- java
- jpa
- Locking Read
- reflection
- 가비지 컬렉션
- 자바
- db
- iterable
- CAS
- text
- MVCC
- 가비지 컬렉터
- 동시성 문제
- 데이터 타입
- Synchronized
- Di
- 백엔드
- Atomic Type
- MySQL
- foreach
- iterator
- Today
- Total
목록Spring Data (14)
과정을 즐기자
연관관계 매핑 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다. 객체는 참조를 사용해서 연관된 객체를 찾는다. 테이블과 객체의 이런 차이를 없애기 위해 연관관계 매핑을 사용한다. 예를들어 Member와 Team이 있다고 하자. 한 team에는 여러 명의 member가 있을 수 있다. 먼저 테이블을 만들어보면 member와 team은 N:1 관계이고 member 쪽이 외래 키로 team_id를 가진다. 테이블에서는 외래 키 하나로 member에서도 team을 찾을 수 있고 team에서도 member를 찾을 수 있다. 단방향 매핑 이제 객체를 보자. Member가 참조를 사용하기 위해 teamId 대신 team을 가져야 한다. @JoinColumn은 외래 키를 매핑할 때 사용한다. 매핑할 외래 키..
객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리하는 것으로 엔티티라고 부른다. @Entity의 속성에는 name이 있다. name은 JPA에서 사용할 엔티티 이름을 지정한다. 설정하지 않으면 클래스 이름을 그대로 사용한다. JPA가 내부에서 동적으로 객체를 생성하기 때문에 기본 생성자가 필요하다. @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Member{...} @Table @Table은 엔티티와 매핑할 테이블을 지정한다. @Table의 속성에는 name, catalog, schema, uniqueConstraints 등이 있다. name은 매핑할 테이블 이름을 지정하고 설정하지 않으면 엔티..
영속성 관리 JPA가 제공하는 기능은 크게 엔티티와 테이블을 매핑하는 설계하는 정적인 부분(객체와 관계형 데이터베이스를 매핑)과 매핑한 엔티티를 실제 사용하는 동적인 부분으로 나눌 수 있다.(영속성 컨텍스트) 이제부터 매핑한 엔티티를 실제 사용하는 동적인 부분에 대해 알아보자. 엔티티 매니저 팩토리와 엔티티 매니저 데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFatory를 하나만 생성한다. EntityMangerFactory emf = Persistence.createEntityManagerFactory("jpabook");여기서 필요할 때마다 엔티티 매니저를 생성한다. EntityManager em = emf.createEntityManager();엔티티 매니저 팩토리..
SQL 중심적인 개발의 문제점 자바와 같은 객체지향언어를 사용한다면 추상화, 캡슐화, 정보은닉, 상속, 다형성을 활용하여 역할과 책임을 구분하여 개발을 한다. 관계형 데이터베이스를 사용한다면 SQL을 이용해서 DB에 저장, 수정, 삭제를 하게된다. 그렇다면 객체를 관계형 데이터베이스에 저장하려면 객체정보를 SQL로 변환하여 저장하면 된다. 하지만 객체와 관계형 데이터베이스에는 다음과 같이 크게 4가지 차이가 있다. 상속 : 관계형 데이터베이스에서 상속을 사용하려면 각각의 테이블에 JOIN SQL을 작성해야 한다. 연관관계 : 객체는 참조를 사용하여 연관관계를 가져왔는데 테이블은 외래키를 사용하여 가져와야한다. 데이터 타입 데이터 식별방법 객체 모델과 관계형 데이터베이스 모델은 지향하는 패러다임이 서로 다..