JPA

JPA/ORM 표준 JPA

[ORM 표준 JPA] 6. 연관관계 매핑 1

DB에서 가장 핵심이 되는 연관관계 매핑예제 시나리오회원(Member)과 팀(Team)이 존재한다.회원은 하나의 팀에만 소속될 수 있다.회원과 팀은 다대일 관계이다.초기 코드 설계Member 클래스@Entity@Setter@Getterpublic class Member {    @Id @GeneratedValue    @Column(name = "MEMBER_ID")    private Long id;    @Column(name = "USERNAME")    private String username;    @Column(name = "TEAM_ID")    private Long teamId;} Team 클래스@Entity@Getter@Setterpublic class Team {    @Id @Ge..

JPA/ORM 표준 JPA

[ORM 표준 JPA] 5. 엔티티 매핑2 - 기본키 전략

JPA 필드와 컬럼 매핑 상세 옵션과 주의사항1. insertable, updatableinsertable과 updatable 옵션은 엔터티의 필드가 데이터베이스에 어떻게 반영될지를 결정하며, 기본 값은 true로 필드가 기존 DB와 다르거나, 기존에 값을 수정을 막을 수 있다. 예제@Column(insertable = true, updatable = true)private String name;@Column(insertable = true, updatable = false)private String createdAt;@Column(insertable = false, updatable = true)private String updatedAt; name: 삽입과 업데이트가 모두 가능하다. createAt:..

JPA/ORM 표준 JPA

[ORM 표준 JPA] 4. 엔티티 매핑1 - 객체와 테이블 매핑

저번 글에서 언급했듯 JPA에서 가장 중요한 점2023.09.16 - [JPA/ORM 표준 JPA 기본] - [ORM 표준 JPA 프로그래밍] 3. 영속성 관리 - 내부 동작 방식1. 영속성 컨텍스트에서 내부적으로 어떻게 돌아가는지 매커니즘에 대한 이해2. 실제 설계적인 측면(객체와 RDB를 어떻게 매핑해서 사용하는지) 저번 글의 내용을 빌려와 영속성 컨텍스트의 내부 동작 방식중 중요한 것만 간단하게만 설명한다. 자세한 글은 저번 글을 참고하길 바란다.1차 캐시: 영속성 컨텍스트 내부에는 1차 캐시가 있어, 한 트랜잭션 안에서는 같은 엔티티를 반환한다.더티 체킹: 영속 상태의 엔티티의 변경 사항을 자동으로 데이터베이스에 반영한다.쓰기 지연: 트랜잭션을 커밋할 때까지 SQL을 쌓아두고, 한 번에 데이터베이..

JPA/ORM 표준 JPA

[ORM 표준 JPA] 3. 영속성 관리 - 내부 동작 방식

JPA의 핵심: 객체와 DB 매핑과 영속성 컨텍스트들어가기 전에..JPA(Java Persistence API)에서 가장 중요한 두가지 개념1. 객체와 관계형 데이터베이스 매핑: 데이터베이스와 객체 지향 프로그래밍 간의 설계 차이를 어떻게 극복할 것인가? 2. 영속성 컨텍스트: JPA 내부에서 데이터를 어떻게 관리하는가?이 글에서는 이 두 핵심 개념에 대해 자세히 알아보겠다. 객체와 관계형 데이터베이스 매핑 객체와 데이터베이스는 각각의 세계에서 동작하며, 이 둘의 괴리를 해소하는 것이 JPA의 주 목적이다. 이를 위해 저번 글에서 언급했듯이, JPA는 EntityMangerFactory와 EntityManager라는 구성 요소를 제공한다.  EntityMangerFactory: DB 하나당 하나의 Ent..

JPA/ORM 표준 JPA

[ORM 표준 JPA 프로그래밍] 2. JPA와 Hibernate: 데이터베이스와의 다리 역할

JPA는 Interface, Hibernate는 그 구현체Java Persistence API (JPA)는 인터페이스의 모음이며, 이를 구현한 구현체로 Hibernate라는 라이브러리를 선택했다.  데이터베이스 방언의 유연성JPA는 데이터베이스에 종속적이지 않다.각 데이터베이스의 방언을 지원하여, Oracle에서 MySQL로 데이터베이스를 변경해도 큰 영향이 없다. 실제 운영에서는 조그만한 영향이 있으므로 주의가 필요하다.) JPA의 설정과 초기화JPA를 사용하기 위해선 persistence.xml을 설정해야 한다. 이 설정 파일을 통해 다음의 단계를 거친다. 1. Persistence 클래스에서 persistence.xml을 읽어 설정 정보를 로드한다.2. EntityManagerFactory 클래스를..

JPA/ORM 표준 JPA

[ORM 표준 JPA 프로그래밍] 1. JPA 등장 배경과 소개

SQL 중심적인 개발의 문제점객체 지향 프로그래밍과 관계형 데이터베이스의 괴리감 객체 지향의 특성 객체 지향 프로그래밍 언어는 추상화, 캡슐화, 정보은닉, 상속, 다형성 등과 같은 여러 특성을 가지고 있어 복잡한 시스템을 효율적으로 구성할 수 있다.이러한 특성을 통해, 개발자는 더 나은 설계와 유지보수가 가능하다.관계형 데이터베이스의 특성반면에 관계형 데이터베이스는 테이블, 행, 열 등으로 데이터를 정의하고 SQL을 사용하여 데이터를 관리한다.이는 객체 지향의 특성과는 맞지 않으며, 때로는 데이터를 객체에 매핑하기 위해 추가적인 작업이 필요하다. SQL Mapper와 객체-데이터베이스 불일치 문제Mapper의 한계JPA가 등장하기 전에는 대개 SQL Mapper를 사용하여 객체와 데이터베이스 사이의 매핑..

토이 개발 스토리
'JPA' 카테고리의 글 목록 (3 Page)