Spring

Spring - InvalidDataAccessApiUsageException: No enum constant 에러

codeManager 2022. 7. 13. 18:43
반응형
 nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: No enum constant

 

JPA에서 query 호출 시에 No enum constant enum 에러가 발생하는 경우

 

원인은 enum에 존재하지 않는 값이 DB에 있기 때문입니다.

 

DB에서 읽어와서 Object로 변환하는 중 enum에 없는 값이 있기 때문에 에러가 발생합니다.

 

 

@Entity
@Table(name = "person")
public class PersonEntity {

    @Column(name = "name")
    private String name;
    
    @Column(name = "job")
    @Enumerated(value = EnumType.STRING)
    private JobEnum job;
    
}

 

public enum JobEnum {
	BACKEND, FRONTEND, DATA_ENGINNER
}

 

이렇게 model을 생성했을 때 DB에 job이 BACKEND, FRONTEND, DATA_ENGINEER가 아닌 다른 값이 들어간 경우 에러가 발생합니다.

 

 

해결 방법

 

ENUM에 DB에 존재하는 값을 추가하던지, DB에서 enum에 없는 데이터를 삭제하면 됩니다.

반응형