Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- spring
- 자바 문제풀이
- annotation
- CS
- 운영체제
- 메모리의 불연속적 할당
- 자바 알고리즘
- 리눅스
- linux
- jpa
- 2단계 Page Table
- 다단계 페이지 테이블
- springboot
- Shared Page
- 스프링
- Inverted Page Table
- 알고리즘
- Effective Access Time
- 웹개발
- 프로세스 불연속 할당
- 프로세스 할당
- Page Table의 구현
- 웹 프로그래밍
- 코드스테이츠 백엔드 과정 39기
- 메모리 관리
- Segmentation with Paging
- 스프링부트
- 프로세스 동기화
- 문제풀이
- Allocation of Physical Memory
Archives
- Today
- Total
GrowMe
[Error] mappedBy reference an unknown target entity property 본문
Why don't work?
[Error] mappedBy reference an unknown target entity property
오늘도 타는중 2022. 7. 20. 01:22mappedBy reference an unknown target entity property 에러 발생
# JPA
# 엔티티
# 연관관계 매핑
# @OneToMany
# mappedBy
*issue 내용
- mappedBy reference an unknown target entity property 에러 발생
- 해당 에러는 mappedby로 지정해준 이름이, 참조할 외래키의 해당 필드명과 다를경우 발생하는 것으로 알고있다.
위 사진과 같이 필드명이 일치함에도 불구하고, 해당에러가 발생했다.
*Why don't work???
- @OneToMany의 속성인 mappedby로 지정해준 필드를 가진 타겟 엔티티를 찾지못해서 발생한 것 같다.
- 필드명을 일치 시켰음에도, 엔티티를 찾지 못하니 타겟 엔티티를 지정해줘야겠다고 생각했다.
*그럼.. 어떻게 해결하면 될까??
@OneToMany(mappedBy = "user", targetEntity = User_TeamBoard.class)
private List<User> wish_list = new ArrayList<>();
1. @OneToMany의 속성 targetEntity = User_TeamBoard.class 을 추가하여 타겟 엔티티를 명시해줬다.
2. 하지만, 이번에도 같은 에러가 발생...
3. 이유를 생각해본 결과, User_TeamBoard가 엔티티로 인식되지 못하고 있다는 생각이 들었다.
4. 검색해보니, @Entity가 선언된 클래스에 기본생성자가 없으면, JPA 관리자가 엔티티로 인식을 못하는 것을 발견
5. User_TeamBoard에 기본 생성자를 추가하니 모두 해결되었다.
*알게된 점
- mappedby로 지정 시, 필드명이 일치함에도 해당 에러가 발생할 경우, @OneToMany의 targetEntity 속성을 활용하면 된다.
- 이상한 점은, 이전에는 분명 타겟 엔티티를 지정해주지 않아도 연관관계 매핑이 정상적으로 이루어졌는데, 이번에는 왜 지정을 해줘야 오류가나는지 이유를 아직 찾지 못하였다.
- @Entity가 선언된 클래스에 기본생성자를 추가해야 JPA에서 엔티티로 인식한다.
*향후 과제
- mappedby 필드명 일치 시, 타겟 엔티티를 찾지 못하는 경우가 언제인지 정확하게 알아보기
'Why don't work?' 카테고리의 다른 글
Comments