JPA17 [JPA] 연관관계 매핑 기초 1. 테이블 중심 매핑 연관 관계 매핑 시나리오 하나를 살펴 보겠습니다. 회원과 팀 entity 존재 회원은 하나의 팀에만 소속 회원과 팀은 다대일 관계 다음은 객체의 테일블에 맞추어 모델링한 예시입니다. @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @Column(name = "TEAM_ID") private Long teamId; … } @Entity public class Team { @Id @GeneratedValue private Long id; private String name; … } //팀 저장 Team team = new Team.. 2020. 4. 14. [JPA] 기본 키 매핑 1. 기본 키 매핑 어노테이션 @Id @GeneratedValue @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; 기본 키 매핑 방법 직접 할당 : @Id만 사용 자동 생성(@GeneratedValue) IDENTITY : 데이터베이스에 위임, MySQL SEQUENCE : 데이터베이스 시퀀스 오브젝트 사용. @SequenceGenerator 필요 TABLE : 키 생성용 테이블 사용. 모든 DB에서 사용 가능. @TableGenerator 필요 AUTO : 방언에 따라 자동 지정. 기본값 2. IDENTITY 전략 - 특징 기본 키 생성을 데이터베이스에 위임 주로 MySQL, PostgreSQL, SQL Server, DB2에서.. 2020. 4. 10. [JPA] 객체와 테이블 매핑 1. 엔티티 매핑 소개 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본키 매핑 : @Id 연관관계 매핑 : @ManyToOne, @JoinColumn 2. @Entity @Entity가 붙은 클래스는 JPA가 관리하며 엔티티라고합니다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity를 필수적으로 붙여줍니다. 기본 생성자 필수 final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X @Entity 속성 정리 name : jpa에서 사용할 엔티티 이름을 지정합니다. 기본값: 클래스 이름을 그대로 사용합니다. (ex) Member 같은 클래스 이름이 없으면 가급적 기본값을 사용합니다. @Table 엔티티.. 2020. 4. 10. [JPA] 영속성 콘텍스트 1. 영속성 컨텍스트 영속성 컨텍스트 JPA가 내부에서 실제로 동작하는 방식 이 영속성 컨텍스트는 JPA를 하면서 계속 나오는 개념입니다. 확실하게 알고있어야합니다. 우선 JPA의 동작 방식을 알아보겠습니다. EntityManagerFactory는 어플리케이션 시작시 한개만 만들어집니다. JPA는 사용자로부터 요청이 오면 EntityManagerFactory로 부터 EntityManager를 생성합니다. EntityManager는 내부적으로 데이터베이스 커넥션을 사용해서 DB를 사용합니다. 사용이 완료되면 연결을 끊어줘야합니다. 영속성 컨텍스트란? JPA를 이해하는 가장 중요한 용어 "엔티티를 영구 저장하는 환경" 이라는 뜻 눈에 보이지 않음. 영속성 컨텍스트는 논리적인 개념 EntityMager를 통해.. 2020. 4. 10. [JPA] 관계형 데이터베이스의 문제 오늘은 JPA를 본격적으로 공부하기전에 관계형 데이터베이스의 문제점에 대해서 알아보겠습니다. 관계형 데이터베이스의 문제점 현재 시점을 기준으로 우리는 객체지향 프로그래밍을 하고 이 객체를 관계형 데이터베이스에서 관리하고 있습니다. 데이터베이스를 제어하기 위해서 우리는 SQL문을 사용합니다. 이 SQL 중심적인 개발의 문제점은 개발자가 CRUD라고 불리는 INSERT, UPDATE, SELECT, DELETE를 작성해서 객체를 관계형 데이터베이스에 넣어주는 작업을 한다는 것입니다. 즉, 자바 객체를 SQL로 SQL을 다시 자바 객체로 변환하는 작업을 해주는 것이죠. 이 작업은 사실상 반복적인 작업이고 지루한 작업입니다. 또한 객체와 관계형 데이터베이스의 패러다임의 불일치가 가장 큰 문제입니다. 관계형 데이.. 2020. 4. 8. 이전 1 2 3 다음