본문 바로가기

SpringFramework/JPA

(13)
JPA - 엔티티 매핑 - 객체와 테이블 매핑: @Entity, @Table - 기본 키 매핑: @Id - 필드와 컬럼 매핑: @Column - 연관관계 매핑: @ManyToOne, @JoinColumn @Entity 속성 기능 기본값 name JPA에서 사용할 Entity 이름을 지정. 설정하지 않으면 Class명을 그대로 사용한다 (ex) User class -> "User") @Entity 사용시 주의사항 - 기본 생성자는 필수 (파라미터가 없는 public 혹은 protected) => 실제로 Entity Class에서 생성자를 생략해도 Java에서는 기본생성자를 만들어주기 때문에 오류가 발생하지는 않음. => JPA가 객체 생성시에 기본 생성자를 사용하기 때문 - final, enum, interface, inner ..
JPA - 영속성 컨텍스트 영속성 컨텍스트 - EntityManager를 생성할 때 만들어지며 Entity를 저장하는 논리적인 공간 - EntityManager를 통해서 Entity를 영속성 컨텍스트에 보관 및 관리한다 특징 - 영속 상태는 식별자 값이 반드시 있어야 한다. (@Id 어노테이션으로 테이블의 기본 키로 매핑한 값) - 데이터베이스 저장 - 영속성 컨텍스트에 Entity를 저장(영속상태)하고 트랜잭션이 커밋되는 순간 DB에 반영하는데 이를 플러시(flush)라 한다. - Entity를 관리하여 아래와같은 장점이 생겨남 1] 1차 캐시 영속성 컨텍스트는 내부에 캐시를 가진다. 영속 상태의 Entity를 이곳에 저장한다. find() 메소드(데이터를 조회)를 호출하여 Entity를 조회할때 곧바로 DB로 가는것이 아닌 영..
JPA - 기본 개념 및 내용정리 ORM(Object-Relational-Mapping)이란? : 객체와 관계형 데이터베이스(RDBMS)의 데이터를 자동으로 연결해 주는 것을 말한다. 객체 - 관계 매핑을 통해 프로그램의 복잡도를 줄이고(트랜잭션 처리 등) 작업을 더 편리하게 할 수 있도록 돕는다. - ORM은 객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술이다. - 객체지향의 구조가 관계형 데이터베이스와 유사하다는 점에서 시작되며, 객체지향을 자동으로 관계형 데이터베이스에 맞게 처리해주는 기법에 대해서 아이디어를 내기 시작했고 그것이 ORM의 개념이 자리잡는 시작점이였다. - SQL Query가 아닌, 메소드의 call을 통해 데이터를 제어할 수 있다. - ORM의 장점 1] 비즈니스 로직에 더 집중할 수 있다. 2] 재사용(생..