일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- la-piscine
- JIT
- Operating System
- HeapArea
- 42서울
- 바이트코드
- 도커네트워크
- 참조변수
- jdk
- java
- 상속관계
- 라피신
- javac
- 운영체제
- Compiler
- SRP
- LSP
- RDD
- generics
- MethodArea
- 제네릭스
- pg_hba.conf
- 포함관계
- 42seoul
- 자바컴파일러
- StackArea
- abstract
- JVM
- 이노베이션아카데미
- classloader
- Today
- Total
목록CS/jpa (4)
while(1) 작심삼일();

객체는 참조를 사용해서 연관된 객체를 찾는다. ↕ 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다. 이렇듯 객체와 테이블 사이에는 큰 간격이 있기 때문에 객체를 테이블에 맞추어 데이터 중심으로 모델링을 한다면, 객체 지향적인 방법이 아닐뿐더러, 협력 관계를 만들 수 없다. 객체 연관관계 사용) 단방향 연관관계 @Entity public class Member { @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; ... } Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setName("member1"); ..
객체와 테이블 매핑) @Entity : JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 붙여주어야하고 JPA가 관리한다. 단, 기본 생성자(파라미터가 없는 public or protected)가 필수이며 final, enum ,interface, inner 클래스를 사용할 수 없다. name : JPA에서 사용할 Entity 이름을 지정한다. (default : Class 이름) @Table : Entity와 매핑할 테이블 지정 name : 매핑할 테이블 이름 (default : Entity 이름 catalog : db catalog 매핑 schema : db schema 매핑 uniqueConstraints : DDL 생성 시 유니크 제약 조건 생성 필드와 컬럼 매핑) @Colum..

JPA 구동 방식) EntityManagerFactory는 하나만 생성해서 애플리케이션 전체에 공유를 하여 사용해야 하며, EntityManager는 쓰레드간 공유를 해선 안되고 사용하고 버려야 한다. JPA의 모든 데이터 변경은 트랜잭션 내에서 실행되어야 한다. 영속성 컨텍스트는 Entity를 영구 저장하는 환경으로써, 논리적인 개념이고 EntityManager를 통해 접근할 수 있다. 비영속 (new/transient) : 영속성 컨텍스트와 관련이 없는 새로운 상태 (new는 객체를 생성만 한 상태라고 볼 수 있고, transient는 영속대상에서 제외시키기 위해 사용하고, 단순 메모리적차원에서만 사용을 원할 때 사용한다) 영속 (managed) : 영속성 컨텍스트에 관리되는 상태 (new를 통해 생..
Java Persistence API, 자바 진영의 ORM 기술 표준이라고 한다. ORM) Object Relational Mapping(객체 관계 매핑), 객체와 RDB에서의 패러다임 불일치를 해결하기위해 자동으로 매핑해주는 것을 말한다. JPA를 사용하게 되면 ORM 프레임워크가 중간에서 매핑을 해주기 때문에 코드를 SQL 중심적이 아닌 객체지향적으로 작성할 수 있어 생산성, 유지보수, 성능에서 뛰어나다. JPA는 인터페이스의 모음이고 그에 해당하는 구현체로는 가장 많이 사용되는 Hibernate, EclipseLink, DataNucleus 등이 있다. 위에 언급한 3가지 장점을 다시 살펴보자면, 생산성) jpa에서 쉽게 CRUD를 사용할 수 있다. // 저장 jpa.persist(member) /..