1. 문제의 상황
RoleHierarchy라는 Entity에서 필드로 String childName을 가지고 있다.
또한 내가 알기로는 Spring이 알아서 저장할 때 camel case로 변환하여 저장해 주는 것으로 알고 있다.
하지만 다음과 같이 childName이라는 column을 찾을 수 없다는 오류에 직면하게 되었다.
이러한 문제가 발생한 이유는 바로 부모를 참조할 때 referencedColumnName으로 "child_name"을 지정해 줬기 때문이다.
원래는 referencedColumnName을 지정하지 않고, default로 설정하는 부모의 id값을 기본으로 사용하겠지만, 나의 코드에서는 Role의 이름이면 충분히 구별할 수 있었기 때문에 id를 저장할 필요가 없었다.
(id가 1인 Role.ADMIN이나 id가 3인 Role.ADMIN 은 동일한 Role이기 때문이다)
따라서 referencedColumnName을 지정해 줬었는데, 이점이 문제가 되었다...
2. 해결 방법
간단하다. @Column(name = "child_name")을 설정해 주면 된다!
힌트를 얻게 된 다음글 또한 도움이 될 수도 있다.
https://okky.kr/articles/1316818
'BackEnd > JPA' 카테고리의 다른 글
[JPA] Hibernate6 SQLFunctionTemplate not working anymore (0) | 2024.03.17 |
---|---|
[JPA] QueryDsl에서 Groupy By적용 후 가장 큰 원소 가져오기 (0) | 2022.11.23 |
[JPA] QueryDSL 에서 Select필드로 상속한 Entity 사용시 경험한 문제 (0) | 2022.11.10 |
[JPA] Soft Delete 자동 처리하기 (0) | 2022.11.09 |
[JPA] Open Session In View 더 깊게 (0) | 2022.09.11 |
댓글