일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 런타임 상수
- compgen
- spring
- 백준
- JDBC
- 커밋 되돌리기
- allocationSize
- 쉘 스크립트
- 티스토리챌린지
- 파이썬
- 오블완
- DTO
- application layer
- 은행원알고리즘
- 무한정 대기
- JPA
- 알고리즘
- 프로그래머스
- 컴파일 타임 상수
- @SubscribeMapping
- BindingResult
- m:n
- API
- @Autowired
- Git
- 리눅스
- intelij spring config
- 기본키 전략
- 편향된 지수
- 쿠키
- Today
- Total
목록JPA (8)
둘셋 개발!
intro. jpa를 공부하다가 orphanRemoval 옵션이 제대로 동작이 안됐다. orphanRemoval 옵션을 true로 하면 고아객체 발생시 해당 고아객체는 삭제되어야 하는데 삭제가 안된 것이다. 클래스 구성 클래스로는 Parent와 Child가 있고, Parent : Child는 1: N의 관계를 가지고 있다. Parent.class @Entity public class Parent { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "parent", orphanRemoval = true) // 옵션 적용 private List childList = new ArrayList(); public voi..
(우선 일대다 양방향은 잘 쓰지 않는다) 일대다 양방향을 공부하던 도중, 다 방향에 있는 엔티티에 @ManyToOne만 달아도 연관관계 된 객체를 알 수 있는데 왜 @JoinColumn(name = "~~", insertable=false, updatable = false)을 넣어야 되는지 궁금해졌다. 그래서 @ManyToOne만 달아보았다. 예제는 post와 comment이다. post.java@Entity public class Post { @Id @GeneratedValue private Long id; @OneToMany @JoinColumn(name = "POST_ID") private List comments = new ArrayList(); //... } comment.java@Entity ..
영속화 순서에 따라 예상치 못한 update쿼리가 나갈 수 있다. 다음 예시를 보자!! 코드 Member.class package hellojpa.entitiy; import javax.persistence.*; @Entity public class Member { @Id @GeneratedValue private Long id; private String username; @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; // getter, setter } Team.class package hellojpa.entitiy; import javax.persistence.*; import java.util.ArrayList; import java.ut..
엔티티 (JPA가 관리하는 객체)의 기본키를 자동으로 생성하는 전략에는 3가지가 있다. 1. IDENTITY 2. SEQUENCE 3. TABLE 아래의 내용은 각각의 전략에 대한 설명과 성능향상을 위한 방법과 실제 사용 예시이다. 1. IDENTITY @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; //... } 이 전략은 기본키 생성을 DB에게 위임하는 것이다. 엔티티를 영속성 컨텍스트에 persist 하려고 할 때 DB에 저장하고 DB로부터 기본키를 받아 영속성 컨텍스트에 저장한다. 원래는 새로운 엔티티를 영속화하면 insert 쿼리를 쓰기 지연 SQL에 저장하고,..