일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ManyToOne
- Event Messaging
- event streaming
- N:M
- querydsl
- OneToMany
- 테이블 매핑
- Event Drvien Architecture
- spring boot
- JPA
- 다대다
- onetoone
- Today
- Total
목록JPA (3)
차곡차곡 쌓아가는 개발일기
N:M관계형 DB는 정규화된 테이블 2개로 N:M 관계를 표현할 수 없다. 따라서 중간에 연결 테이블을 추가해 N:M 관계를 1:N, N:1 관계로 풀어낼 수 있다하지만 객체는 테이블과 다르게 객체 2개로 N:M 관계를 풀어낼 수 있다N:M 단방향@ManyToMany와 @JoinTable을 통해 연결테이블을 관리하지 않고도 다대다 관계를 풀어낼 수 있다코틀린으로 N:M 양방향 구현 예시 코드@Entityclass Library( @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "library_id") var id: Long = 0, val name: String, @ManyToMany @JoinTable(name = "L..
연관관계 매핑테이블을 설계하다 보면 두 테이블 간에 관계를 생성해야 하는 경우가 생긴다. 스프링에서는 JPA라는 ORM을 통해 보통 자바 객체와 테이블을 매핑하는데 객체들끼리도 매핑을 해야 테이블에도 반영된다테이블의 간에 관계를 생성하는 것은 두 테이블 중에 종속테이블의 PK를 주인테이블에 FK로 저장하여 관계를 생성하게 되고, 테이블은 외래키를 통해 JOIN 연산을 할 수 있기 떄문에 양방향이다객체에서 관계를 나타내는것은 참조를 통해 나타내고 한쪽에서 다른쪽을 참조하기 때문에 단방향일 수 밖에 없다, 하지만 객체를 단방향으로 매핑하여도 매핑한 시점에서 테이블 간의 연관관계는 양방향으로 만들어져있따객체 그래프 탐색: 한 객체를 통해 연관된 다른 객체를 조회하는 것을 의미한다연관관계 매핑의 특징방향: 단방..
어느날 Kotlin 스프링 부트 서버를 유지보수하던 중이었다그러다 새로운 API 개발을 담당하게 되었는데 내용을 들어 보니 DB에 있는 데이터들의 일괄 삭제 API가 필요한 상황이 생긴 것이었다내용은 다음과 같았는데 OAuth 서비스에서 로그인된 상태로 로그인 한 사람이 등록해놓은 서비스들을 삭제하는 API였다처음 코드는 DeleteByIdsAndCreatedBy(User)가 내가 사용하는 스프링 버전에서 지원하지 않아 다음과 같이 작성했었다@Service@Transactional(rollbackfor = [Exception::class])class deleteClientsService( private val clientRepository: ClientRepository) { fun execu..