일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- kotlin
- 인프런
- Proxy
- SpringBoot
- QueryDSL
- transaction
- 김영한
- db
- Greedy
- 스프링
- java
- Exception
- 스프링 핵심 원리
- 스프링 핵심 기능
- AOP
- 그리디
- pointcut
- JDBC
- Thymeleaf
- http
- 알고리즘
- spring
- Spring Boot
- springdatajpa
- 자바
- 백준
- JPQL
- Android
- jpa
- Servlet
- Today
- Total
목록인프런 (528)
개발자되기 프로젝트
1. 일대다 단방향 매핑. "일"이 연관관계 주인.? 이 모델은 권장하진 않음.. 표준에서 지원하긴 함. Team에서 Member를 참조하나 Member는 Team을 참조하지 않음.. 하지만 DB입장에서 FK는 MEMBER("다")에 있음 즉, Team의 members를 변경했을 때, MEMBER 테이블의 TEAM_ID(FK)를 변경해야함. -> 다른 테이블의 FK를 업데이트를 해야함.. 2. TEST @Entity public class Team { @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String name; @OneToMany @JoinColumn(name = "TEAM_ID") private List membe..
1. 연관관계 매핑 시 고려사항 3가지 다중성 : 데이터베이스의 다중성기준으로 생각 다대일 : @ManyToOne ->제일 많이 씀 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany -> 쓰지마! 멈춰! ->일대다, 다대일로 풀어서 사용. 단방향, 양방향 테이블 - 외래 키 하나로 양쪽 조인 가능 - 방향이라는 개념이 없음 ㅋㅋㅋ 객체 - 참조용 필드가 있는 쪽으로만 참조 가능. - 한쪽만 참조하면 단방향 - 양쪽이 서로 참조하면 양방향. 연관관계 주인 테이블은 외래 키 하나로 두 테이블이 연관관계 맺음 객체 양방향 관계는 A->B, B->A 처럼 참조 두개 객체 양방향 관계는 참조가 2군데 있음. 둘 중 테이블의 외래키를 관리할 곳 지정 필요 연과관계 주인 : ..
1. 테이블 구조 2. 객체 구조 참조 사용 3. GitHub : 210810 EXAMPLE GitHub - bsh6463/JPA_EXAMPLE Contribute to bsh6463/JPA_EXAMPLE development by creating an account on GitHub. github.com
1. 양방향 매핑 시 가장 빈번한 실수 연관관계의 주인에 값을 입력하지 않은 실수 주인이 아닌 방향 만 연관관계를 설정하면..? - 주인이 아닌 곳에서 만 값을 입력하면 SQL 나갔다가 rollback됨 ㅋㅋ Member member = new Member(); member.setUserName("member1"); em.persist(member); Team team = new Team(); team.setName("TeamA"); //주인이 아닌 쪽에서 연관관계 설정 team.getMemberList().add(member); em.persist(team); //team이 영속상태 되면 id값이 들어감. Team은 연관관계 주인이 아니다. mappedBy는 읽기 전용이고, JPA에 update나 i..
1. 단방향, 양방향 매핑 단방향 연관관계를 양방향으로 바꿔도 table은 변화가 없다. MEMBER은 TEAM_ID(FK)와 TEAM의 PK를 Join 반대로 TEAM은 TEAM_ID(PK)와 MEMBER의 FK와 Join하면됨 즉!!!!!!!!! TABLE은 FK하나로 양방향으로 매핑이 된다!!!! 방향의 개념보다는 FK하나로 양쪽이 연관관계가 생김. 근데 객체는 그렇지 않다. 따라서 Team객체에 List가 있어야 양쪽으로 가능함. @OneToMany(mappedBy = "team") //일대다 매핑에서 나는 뭐랑 연결되어있지? Member 클래스의 Team 필드명. private List memberList = new ArrayList(); Test - Member에 setTeam을 통해 연관관계..
1. 목표 객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래 키를 어떻게 매핑? 객체는.. 레퍼런스임.. object.get~ 인 반면에 테이블은 나랑 연관된 애를 찾을 때 외래키(FK)를 활용. 2. 용어 방향(Direction) : 단방향, 양방향 다중성(Multiplicity) : 다대일, 일대다, 일대일, 다대다 연관관계 주인(Owner) : 객체 양방향 연관관계는 관리 주인이 필요해! 3. 연관관계가 필요한 이유. 객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것 - 객체지향의 사실과 오해 - 4. 예제 시나리오 회원과 팀이 있다. 회원은 하나의 팀에만 소속될 수 있다. 회원과 팀은 다대일 관계다. 5. 객체를 테이블에 맞춰서 모델링 하면..? 객체를 테이블에 맞..
1. 요구사항 분석 회원은 상품을 주문할 수 있다. 주문 시 여러 종류의 상품을 선택할 수 있다. 2. 기능 목록 회원 등록 회원 조회 상품 등록 상품 수정 상품 조회 상품 주문 주문내역 조회 주문 취소 3. 도메인 모델 분석 4. 테이블 설계 5. 엔티티 설계 매핑. 6. 객체지향 스럽지 않다. Order안에 memberId가 있다. Order에서 member를 가지고 오고 싶으면... order.getMember()를 하면 될 것 같은데.. 지금은 객체지향 스럽지 않음.. 지금 설계는 데이터 중심 설계임. - 객체 설계를 관계형 DB에 맞춰서 설계한 것. - 테이블의 외래키를 객체에 그대로 사용. - 객체 그래프 탐색 불가능 - 참조가 없으므로 UML도 잘못됨 ㅋㅋㅋ 7. GitHub : 210809..
1. PK 매핑 방법 직접 할당 : @Id만 사용 자동 생성 : @GeneratedValue - IDENTITY: 데이터베이스에 위임, MYSQL @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - SEQUENCE: 데이터베이스 시퀀스 오브젝트 사용, ORACLE --> @SequenceGenerator 필요 - TABLE: 키 생성용 테이블 사용, 모든 DB에서 사용 --> @TableGenerator 필요 - AUTO: 방언에 따라 자동 지정, 기본값 2. IDENTITY 기본 키 생성을 DB에 위임 : 너가 알잘딱해 MySQL, PstgreSQL, SQL Server, DB2에서 사용 JPA는 보통 transacti..