JPA , DDD 로 차세대 개발을 하면서 TOBE PK 와 별개로 AS-IS PK 체계를 가져가야하는 경우가있어서

데이터와 동일하게 채번("S" + sequence.nextval) 해야 하는   을 해야하는 경우 어떻게 해야하는지 찾아보다가

아래와같은 경우를 찾음.

 

@Id 가 붙지않는(pk 가 아닌) 데이터를 채번해야하는 경우

 

참고 : https://stackoverflow.com/questions/277630/hibernate-jpa-sequence-non-id

 

Hibernate JPA Sequence (non-Id)

Is it possible to use a DB sequence for some column that is not the identifier/is not part of a composite identifier? I'm using hibernate as jpa provider, and I have a table that has some columns...

stackoverflow.com

1번 (별로... 불필요한 Entity 추가로 쓰레기 테이블 생김)

필요한 데이터를 채번하는 Entity 추가해서 , Entity를 OneToOne 관계를 맺어서 추가할때마다 Entity에 추가하도록 한다.

 

2번. (적용한것) 어노테이션 + AOP 를 활용 ,

1. 적용할 필드 위에 어노테이션 붙인다.

2. 어노테이션 이 적용된 데이터를 set 해주는데, 이때 DB에서 채번한 데이터를 가져와서 조합시켰음.

 

3번.  @Column(columnDefinition="serial") 사용. 

 나의 경우에는 단순 채번데이터가 아닌 String + 채번된 값 이여서 상황에 맞지않아서 고려하지 않음.

 

4번. @GeneratedValue , @GenericGenerator 를 활용한 방법은 @Id 어노테이션이 붙은 pk 값에만 적용할수 있는거라서 적용할수가 없었다.

+ Recent posts