일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Spring
- 백엔드
- 30기
- delayed message plugin
- Domain Driven Design
- 자동처리
- RESTClient
- ddd
- 큐시즘
- 교육기획팀
- 한국대학생it경영학회
- jdbc
- JPA
- 최범균
- springboot
- 도메인 주도 개발 시작하기
- scheduling messages with rabbitmq
- rabbitmq-delayed-message-exchange
- cicd
- GitHub Actions
- 영속성
- Spring Batch
- 자바 ORM 표준 JPA 프로그래밍
- reactive operaton
- 객체지향 쿼리 언어
- kusitms
- 이펙티브자바
- 교육기획팀원
- java
- JPQL
- Today
- Total
목록자바 ORM 표준 JPA 프로그래밍 (13)
코딩은 마라톤

목표 : 객체의 참조와 테이블의 외래 키를 매핑하는 것 단방향 연관관계 회원은 하나의 팀에만 소속될 수 있다. 회원과 팀은 다대일 관계다. - 객체 연관관계 회원 객체와 팀 객체는 단방향 관계 Member.team 필드로 팀 객체와 연관관계를 맺는다. member -> team의 조회는 가능, 반대는 불가 - 테이블 연관관계 회원 테이블은 TEAM_ID 외래키로 팀 테이블과 연관관계 맺는다. 회원과 팀 테이블은 양방향 관계 (회원, 팀 둘다 조인 가능) - 객체 연관관계와 테이블 연관관계 정리 객체는 참조(주소)로 연관관계를 맺는다. 참조를 사용하는 객체의 연관관계는 단방향이다. 객체를 양방향으로 참조하려면 단방향 연관관계를 2개 만들어야 한다. 테이블은 외래 키로 연관관계를 맺는다. 외래 키를 사용하는..
@Entity 테이블과 매핑할 클래스는 필수로 붙여야 한다. 속성 기능 기본값 name JPA에서 사용할 엔티티 이름 지정 클래스 이름 주의사항 기본 생성자 필수 (@NoArgsConstructor) final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X @Table 엔티티와 매핑할 테이블 지정 속성 기능 기본값 name 매핑할 테이블 이름 엔티티 이름 catalog catalog 기능이 있는 db에서 매핑 schema schema 기능이 있는 db에서 매핑 uniqueConstraints (DDL) DDL 생성 시 유니크 제약조건 생성. 2개 이상의 복합 유니크 제약 조건도 만들 수 있다. DDL을 만들 때만 사용. 데이터베이스 스키마 자동 생성 ..
엔티티 매니저 팩토리, 엔티티 매니저 엔티티 매니저 팩토리 // persistence.xml 코드의 EntityManagerFactory emf = Persistence.createEntityManagerFactory("{name}"); - 엔티티 매니저를 만드는 공장 - 공장을 만드는 비용은 상당히 크다. -> 한 개의 엔티티 매니저 팩토리를 만들어서 전체 애플리케이션에서 공유 - 여러 스레드가 동시에 접근해도 안전 -> 서로 다른 스레드 간에 공유 가능 엔티티 매니저 EntityManager em = emf.createEntityManager(); - 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 절대 공유 금지 영속성 컨텍스트 엔티티를 영구 저장하는 환경 em.persist(e..
책에 나온 설정 방법 - 이클립스 - Java 1.6 - Maven - H2 1.4.187 변경 사항 - IntelliJ 인텔리제이 - Java 11 - Gradle - H2 2.1.214 build.gradle dependencies { implementation 'org.hibernate:hibernate-entitymanager:5.6.15.Final' implementation 'org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final' runtimeOnly 'com.h2database:h2:2.1.214' /* java 11일 경우 설치 */ implementation 'javax.xml.bind:jaxb-api:2.3.0' compi..

JDBC - JDBC를 사용하여 DB에 접근할 경우, JDBC API를 사용해서 SQL을 DB에 전달한다. 1. SQL을 직접 다룰 경우 생기는 문제점 - SQL을 직접 다룰 경우, CRUD용 SQL을 반복해서 작성해야하는 비생산적인 과정을 수행해야한다. - SQL에 의존적인 개발을 하게 된다. (테이블에 컬럼을 추가시 연관된 SQL을 모두 수정해야한다.) 2. 객체지향 DB의 패러다임 불일치 - 상속 : 객체는 상속 기능 O VS 테이블은 상속 기능 X - 연관관계 : 객체는 참조를 통해 연관 객체 조회 VS 테이블은 외래키와 조인을 사용해서 조회 - 객체 그래프 탐색 : SQL을 직접 다룰 경우, SQL에 따라 객체 그래프를 어디까지 탐색할 수 있는지 정해진다. - 비교 : 동일성(==) 비교시 같..