JPA , DDD 로 차세대 개발을 하면서 TOBE PK 와 별개로 AS-IS PK 체계를 가져가야하는 경우가있어서
데이터와 동일하게 채번("S" + sequence.nextval) 해야 하는 을 해야하는 경우 어떻게 해야하는지 찾아보다가
아래와같은 경우를 찾음.
@Id 가 붙지않는(pk 가 아닌) 데이터를 채번해야하는 경우
참고 : https://stackoverflow.com/questions/277630/hibernate-jpa-sequence-non-id
1번 (별로... 불필요한 Entity 추가로 쓰레기 테이블 생김)
필요한 데이터를 채번하는 Entity 추가해서 , Entity를 OneToOne 관계를 맺어서 추가할때마다 Entity에 추가하도록 한다.
2번. (적용한것) 어노테이션 + AOP 를 활용 ,
1. 적용할 필드 위에 어노테이션 붙인다.
2. 어노테이션 이 적용된 데이터를 set 해주는데, 이때 DB에서 채번한 데이터를 가져와서 조합시켰음.
3번. @Column(columnDefinition="serial") 사용.
나의 경우에는 단순 채번데이터가 아닌 String + 채번된 값 이여서 상황에 맞지않아서 고려하지 않음.
4번. @GeneratedValue , @GenericGenerator 를 활용한 방법은 @Id 어노테이션이 붙은 pk 값에만 적용할수 있는거라서 적용할수가 없었다.
'Web개발 > JPA' 카테고리의 다른 글
Dynamic Projection & Response 에서 hateoas 정보삭제 (0) | 2021.04.30 |
---|---|
Spring data rest is Null 이나 is Not null (0) | 2021.04.21 |
Projection 사용법 & Projection 안에 Projection (0) | 2021.03.17 |
JPA 로 프로젝트 하면서 느낀점 (0) | 2021.03.15 |
JPA 다대다 관계 풀기(1) (0) | 2021.03.14 |