목록Database/JPA, ORM (14)
ecsimsw
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. 양방향 매핑 이전 단방향 매핑 member - team의 구조에서 이번에는 team에서 member를 얻고 싶은 경우에는 어떻게 해야할까. Team에 List members를 만들고, member의 team과 매핑하면 된다. Member @Entity public class Member { @Id @GeneratedValue private Long id; @ManyToOne @JoinColumn(name="TEAM_ID") private Team team; } Team @Entity public class Team { @Id @GeneratedValue private Long id; private String n..
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. 연관 관계 매핑 1. 데이터 중심 모델링 아래 Member와 Team의 구조를 보자. @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name= "TEAM_ID") private long teamId; } @Entity public class Team { @Id @GeneratedValue private Long id; } 위 설계처럼 기존의 데이터 중심 모델링으로 멤버에 대한 Team 객체를 얻고자 한다면, 다음처럼 member.TeamId를 뽑고, 엔티티매니저에서 그 teamId에 해당하는 Team 객체를 찾아야할 것이다. ..
PK 필드 권장하는 식별자 전략 (PK만들기) 1. 기본 제약 조건 : null, 유일, 변하면 안된다 2. 자연키는 적절하지 않음. 3. 권장 대체키 : Long 타입 + 대체키 + 키 생성전략 @GeneratedValue(strategy=GerationType.AUTO)
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. 필드와 컬럼 매핑 데이터 스키마 자동 생산 - DDL을 어플리케이션 실행 시점에서 자동으로 생성하도록 할 수 있다. - 테이블 중심 -> 객체 중심 - DB에 맞는 적절한 DDL 생성 - 이렇게 자동으로 생성된 DDL은 개발에서만 사용하는 것이 바람직하다. 운영에서 사용해선 안된다. 사용 방법 - persistence / property에서 hbm2ddl.auto의 value 조정 *DML, DDL, DCL DML : Select, Insert, Update, Delete DDL : Create, Alter, Drop, Rename DCL : Grant, Revoke 매핑 어노테이션 - 필드와 컬럼을 매핑하는데 ..
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. EntitiyManagerFactory EntityManagerFactory는 transaction 단위의 업무를 처리할 때 항상 EntityManager를 생성하고 이를 통해 jdbc를 사용한다. 하나만 생성해서 애플리케이션 전체에서 공유하도록 한다. persistence-unit name는 persistence.xml에서 persistence-unit을 설정할 때 지정한다. EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistence-unit name); Entity @Entity @Getter @Setter public class..
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. JPA "객체를 자바 컬렉션을 저장하듯 DB에 저장할 순 없을까" Java Persistence API / ORM을 따른 Java 진영 표준 API ORM Object Relation Mapping 객체는 객체대로 설계하고, 관계형 DB는 관계형대로 설계하고. -> ORM이 중간에서 이 둘을 매핑한다!! 구조 기능 1. Entity 분석 2. Query 생성 3. JDBC API 사용 4. 패러다임 불일치 해결 ( 이를 테면 상속, 연관 관계, 엔티티 관계 ) CRUD C: jpa.persist(member) R: Member member = jpa.find(memberId) U: member.setName("s..