일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- JPA
- Git
- @Autowired
- 백준
- intelij spring config
- JDBC
- 컴파일 타임 상수
- DTO
- 기본키 전략
- 리눅스
- 파이썬
- 런타임 상수
- 쉘 스크립트
- application layer
- 쿠키
- BindingResult
- spring
- 오블완
- API
- 커밋 되돌리기
- m:n
- compgen
- 티스토리챌린지
- allocationSize
- 메모리 구조
- @SubscribeMapping
- 편향된 지수
- 알고리즘
- mysql
- Today
- Total
목록JPA (9)
둘셋 개발!

intro.테이블 설계를 참고해서 엔티티를 만들고 있었다.그런데 그 중 여러개의 테이블에서 복합키를 사용할 수 있었고, 그 중 하나는 autoIncrement였다.나는 @EmbeddedId 을 사용하고 id클래스를 생성하고 그 안에 autoIncrement 변수에 @GeneratedValue(strategy = GenerationType.IDENTITY) 애노테이션이 붙였다.하지만.... 복합키 내부의 @GeneratedValue(strategy = GenerationType.IDENTITY)는 동작하지 않는다복합키 내부의 해당 애노테이션은 동작하지 않는 이슈가 있다. 이 전략은 키 생성을 db에게 위임한다.그래서 엔티티를 영속성 컨텍스트에 영속화하려고 할 때, db에 저장한 후 db로 부터 기본키..

intro.jpa를 공부하다가 orphanRemoval 옵션이 제대로 동작하지 않았다.orphanRemoval 옵션을 true로 하면 고아객체 발생 시 해당 고아객체는 삭제되어야 하는데 삭제가 안된 것이다. 클래스 구성클래스로는 Parent와 Child가 있고,Parent : Child는 1: N의 관계를 가지고 있다. Parent.class@Entitypublic class Parent { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "parent", orphanRemoval = true) // 옵션 적용 private List childList = new ArrayList..
(우선 일대다 양방향은 잘 쓰지 않는다) 일대다 양방향을 공부하던 도중, 다 방향에 있는 엔티티에 @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..