항해99 TIL - 28

강민범·2023년 11월 22일
0

USER테이블과 BOARD테이블의 중간테이블로 BOARDUSER테이블을 생성한 후 USER가 BOARD를 생성할때 BOARDUSER를 생성하도록 하였다

에러 로그

TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing

에러 로그가 발생하였다.

원인

FK 값으로 사용되는 컬럼값이 존재하지않는 상태에서 BOARDUSER테이블에 데이터를 넣을때 문제가 발생한것이였다.

해결책

연관관계를 맺어줄때 @ManyToOne, @OneToMany, @OneToOne 어노테이션에
Cascade라는 옵션을 설정해줄수 있는데 Cascade는 영속성을 전이할때 사용한다. 한마디로 PK키가 영속화될때 FK까지 영속화 되는것을 말한다.
BOARDUSER entity에서 연관관계 어노테이션에
cascade = CascadeType.PERSIST 옵션을 적용하니 문제가 해결되었다.

profile
개발자 성장일기

0개의 댓글