본문 바로가기
반응형

Back-End/JPA5

[북스터디] 자바 ORM 표준 JPA 프로그래밍 : 연관 관계 매핑 기초 Intro객체 참조화 테이블의 외래 키를 매핑한는 것이 이 장의 목표! 방향(Direction) 단방향 : 회원 → 팀 양방향 : 회원 ↔ 팀 다중성(Multiplicity) : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 연관 관계의 주인 : 객체를 양방향 연관 관계로 만들면 연관 관계의 주인을 정해야함 단방향 연관관계회원과 팀이 있다고 가정회원은 하나의 팀에만 소속될 수 있음회원과 팀은 다대일 관계임 객체 연관 관계회원 객체는 Member.team 필드(멤버변수)로 팀 객체와 연관관계를 맺는다.회원 객체와 팀 객체는 단방향 관계이다. (회원객체를 통해 팀을 알 수 있지만 팀 객체로는 회원을 알 수 없음 테이블 연관관계회원 테이블을 TEAM_ID 외래 키로 팀 테이블과 연관관계.. 2024. 6. 16.
[북스터디] 자바 ORM 표준 JPA 프로그래밍 : 엔티티 매핑 Intro이번 장에서는 객체와 테이블 매핑, 기본 키 매핑, 필드와 컬럼 매핑에 대해 알아보겠다. @EntityJPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 붙여야 한다.JPA가 엔티티 객체를 생성할 때 기본생성자를 사용하므로 기본 생성자가 필수(파라미터가 없는 public 또는 protected 생성자)final 클래스, enum, interface, inner 클래스에는 사용할 수 없다.저장할 필드에 final을 사용하면 안 된다. name 속성JPA에서 사용할 엔티티 이름을 지정한다. 보통 기본값인 클래스 이름을 사용한다.다른 패키지에 이름이 같은 엔티티가 클래스가 있다면 이름을 지정하여 충돌하지 않도록 해야 한다.기본값 : 클래스 이름 @Table@Table 어노테이.. 2024. 6. 2.
[북스터디] 자바 ORM 표준 JPA 프로그래밍 : 영속성 관리 엔티티 매니저엔티티 관리자. 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 처리한다. 개발자 입장에서는 엔티티 매니저는 엔티티를 저장하는 가상의 데이터베이스로 생각하면 된다.    엔티티 매니저 팩토리와 엔티티 매니저데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다.엔티티 매니저 팩토리는 생성 비용이 크기 때문에 한 개만 만들어서 애플리케이션 전체에서 공유 하도록 설계되어있다.반면 엔티티 매니저는 생성 비용이 거의 들지 않는다.엔티티 매니저 팩토리는 여러 스레드가 동시에 접근해도 안전하므로 서로 다른 스레드 간에 공유해도 되지만, 엔티티 매니저는 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간.. 2024. 5. 26.
[북스터디] 자바 ORM 표준 JPA 프로그래밍 : JPA 시작 JPA가 제공하는 매핑 어노테이션@Entity클래스의 위에 붙여 사용한다. 해당 클래스를 테이블과 매핑한다고 JPA에게 알려주는 역할을 한다. @Entity 어노테이션이 사용된 클래스를 엔티티 클래스라고 한다. @Table엔티티 클래스에 매핑할 테이블 정보를 알려준다. name 속성을 이용하여 해당 이름을 가지고 있는 테이블과 매핑한다. @Table 어노테이션을 생략하면 클래스 이름을 테이블 이름으로 매핑한다. @Id엔티티 클래스의 해당 어노테이션이 붙은 필드를 기본키에 매핑한다. @Id 어노테이션이 사용된 필드를 식별자 필드라고 한다.@Column필드를 컬럼에 매핑한다. 해당 어노테이션이 생략된 경우 컬럼명과 같은 네임의 필드를 매핑한다.    데이터베이스 방언 SQL 표준을 지키지 않거나 특정 데이터.. 2024. 5. 19.
[북스터디] 자바 ORM 표준 JPA 프로그래밍 : JPA 소개 IntroJPA 사용 방법에 대해서는 잘 알고 있지만, 정확한 핵심 원리 개념이 부족한 것 같아서 이제부터 주말마다 김영한 저자의 책 '자바 ORM 표준 JPA 프로그래밍'에 대해서 읽고 정리한 것을 블로그에 남길 예정이다. 오늘은 그 시작인 '제1장 : JPA 소개'에 대한 글을 써보겠다. SQL을 직접 다룰 때 발생하는 문제점반복적인 CRUD SQL & JAVA 코드어떠한 서비스를 만들었다고 가정할 경우, 그 값을 데이터베이스에 저장할 때를 생각해 보자. 서비스에 해당하는 SQL작성, 객체의 값을 꺼내서 해당 SQL에 전달, JDBC API를 사용해서 SQL을 실행 과정들을 거칠 것이다. 그리고 서비스가 여러 개 생성될 경우 위의 과정을 계속해서 반복해야 한다. 만약 데이터베이스가 아닌 컬렉션에 보관.. 2024. 5. 12.
반응형