다른 테이블의 pk를 가져다 id값으로 사용하려다 발생한 일

213kky·2024년 9월 12일

1대 1대 1 관계 설정을 하고싶었다.

안되는 줄 알았는데

a, b, c 가 있을 때 a를 저장하면서 b가 a의 id를 가져와서 사용하는건 이전에 해봤는데

a를 저장하면서 b가 a의 id를 가져와서 사용하고 b의 id를 c가 다시 가져가서 사용하는건 안되는 줄 알았다.


한참을 헤매이다가 해결방법을 알아냈다

아래와 같이 PK 값을 가져오려는 A객체를 저장하고, B객체에 세팅 안해줘서 발생한 일이었다.

A a = ARepository.save(new A());

B b = B.builder()
        .a(a)
        .build();

 BRepository.save(b);

해결하고 나서 생각해보니 이전에도 거의 비슷한 문제로 한참 시간을 소비했던게 생각나서 너무 화가난다.

다시는 반복하지말자....

profile
since 2022

0개의 댓글