[Spring] Repository IllegalArgumentException에러 조치

Repository extends JpaRepository <Member, ~> 생성 시 주의사항

 

Order CRUD 구현을 위해 Member Entity 생성하고 Repository 생성 및 JpaRepository 참조 후 run을 하였는데

Member가 관리되는 유형이 아니라면서 에러를 뱉어냈다.

 

나는 분명 Member Entity를 잘 만들었는데 무슨일인가 열심히 구글링을 했지만 답을 찾을 수 없었다.

 

생각해보니 Member Entity를 만들기 전에 Repository를 먼저 생성했었는데 오류 없이 잘 생성됐었던 부분이 이상해서 Repository로 다시 가서 Member를 확인했다.

 

아니나 다를까 내가 생성한 Member Entity가 아니라 내가 알지 못하고 있던 java.lang.reflect 패키지에 정의되어 있는 Member가 잡혀있었다.

 

java.lang.reflect패키지란

자바 프로그램에서 리플렉션(Reflection)을 지원하기 위한 클래스와 인터페이스를 제공하는 패키지입니다. 리플렉션은 프로그램이 자신의 구조를 분석하고 수정할 수 있도록 하는 메커니즘을 의미합니다. 이 패키지를 사용하면 실행 중에 클래스의 정보를 얻거나, 필드에 접근하거나, 메서드를 호출하고, 객체를 생성할 수 있습니다.

리플렉션을 통해 프로그램은 컴파일 타임에 알 수 없는 클래스에 대한 정보를 얻을 수 있으며, 동적으로 클래스를 조작하거나 실행할 수 있습니다. 이는 특히 런타임에 다양한 클래스를 다루는 일반적인 라이브러리나 프레임워크에서 유용합니다.

 

결론은 내가 생성한 Member Entity가 아니라 자바에서 이미 생성되어 있었던 인터페이스 Member를 잡아서 IllegalArgumentException에러가 난것이었다.