본문 바로가기

jpa5

[김영한] 자바 ORM 표준 JPA 프로그래밍 - 섹션 5. 연관관계 매핑 기초 - 양방향 연관관계와 연관관계의 주인 양방향 매핑 엔티티 정의@ManyToOne @OneToMany @OneToMany @ManyToOne @OneToOne @OneToOne @ManyToMany @ManyToMany ===> 양방향 관계라는 표현은 이해하기 쉽게 표현한 것이다. 실제로는 단방향 관계 2개를 선언한 것. 연관관계의 주인==> DB의 외래키(FK:FOREIGN KEY) 기준으로 주인을 정한다. 주인: @XXXXXXXX @JoinColumn(name = 'DB 컬럼명') 종속: @XXXXXXXX(mappedBy == '주인 엔티티에 선언된 종속 필드명') (추가설명내용) TEAM을 주인으로 설정하는 것도 가능하지만 성능 이슈가 있어 사용하지 말라 설명합니다. 1) MEMBER 엔티티를 주인으로 했을때 -> MEMBER 테이블에는.. 2023. 10. 17.
[김영한] 자바 ORM 표준 JPA 프로그래밍 - 섹션 4. 엔티티 매핑 1~3 객체와 테이블 매핑 데이터베이스 스키마 자동 생성 • DDL을 애플리케이션 실행 시점에 자동 생성 • 테이블 중심 -> 객체 중심 • 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성 • 이렇게 생성된 DDL은 개발 장비에서만 사용 • 생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬은 후 사용 DDL 생성 기능 • 제약조건 추가: 회원 이름은 필수, 10자 초과X -> @Column(nullable = false, length = 10) • 유니크 제약조건 추가 -> @Table(uniqueConstraints = {@UniqueConstraint( name = "NAME_AGE_UNIQUE", columnNames = {"NAME", "AGE"} )}) • DDL 생성 기.. 2023. 10. 13.
[김영한] 자바 ORM 표준 JPA 프로그래밍 - 섹션 3. 영속성 관리 (내부 동작 방식) JPA에서 가장 중요한 2가지 • 객체와 관계형 데이터베이스 매핑하기 (Object Relational Mapping) • 영속성 컨텍스트 영속성 컨텍스트 • JPA를 이해하는데 가장 중요한 용어 • “엔티티를 영구 저장하는 환경”이라는 뜻 • EntityManager.persist(entity) 엔티티의 생명주기 • 비영속 (new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 • 영속 (managed) 영속성 컨텍스트에 관리되는 상태 • 준영속 (detached) 영속성 컨텍스트에 저장되었다가 분리된 상태 • 삭제 (removed) 삭제된 상태 영속성 컨텍스트의 이점 • 1차 캐시 • 동일성(identity) 보장 • 트랜잭션을 지원하는 쓰기 지연 (transactional wr.. 2023. 10. 11.
[김영한] 자바 ORM 표준 JPA 프로그래밍 - 섹션 0~2(핵심내용 정리) [2023-10-10] JPA에 대해 자세하게 공부하고싶어 [김영한] 자바 ORM 표준 JPA 프로그래밍 - 기본편 인프런 강좌 수강시작 섹션 0~2 핵심내용 정리 JPA? - Java Persistence API - 자바 진영의 ORM 기술 표준 ORM? - Object-relational mapping(객체 관계 매핑) - 객체는 객체대로 설계 - 관계형 데이터베이스는 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑 - 대중적인 언어에는 대부분 ORM 기술이 존재 JPA 소개 1. EJB - 엔티티 빈(자바 표준) 2. JPA(자바 표준) -> 하이버네이트 (오픈 소스) JPA를 왜 사용해야 하는가? - SQL 중심적인 개발에서 객체 중심으로 개발 - 생산성 (기억할것) 수정: da.. 2023. 10. 11.
[SpringBoot] (Chapter1) ORM, JPA, Spring Data JPA 1. Maven Dependency 선언 application.properties 설정 개발소스는 깃허브에서 확인 TODO: 강의에서 인터페이스 주입을 @Autowired로 사용하는데 실무에서도 이렇게 사용하는지 확인필요. https://github.com/seypak77/IntelliJ_SpringBoot/commit/590e0ef243607e5ee44902c2600bcf0c9296115e ORM, JPA, Spring Data JPA Code Commit · seypak77/IntelliJ_SpringBoot@590e0ef seypak committed Jul 25, 2023 github.com Database 데이터 Insert Swagger Execute 확인 2023. 7. 26.