본문 바로가기

오류해결

JPA오류 : Unable to locate Attribute with the the given name [userKey] on this ManagedType [com.jin2rang.auth.entity.AuthInfo]

JPA로 findByUserKey라는 로직을 실행하려고 하는데 다음과 같은 에러가 났다.

Unable to locate Attribute with the the given name [userKey] on this ManagedType [com.jin2rang.auth.entity.AuthInfo]

 

오류의 원인은 '오타'였다!!

 

조회조건을 실행할 DB column들을 정의한 entity파일에서 선언한 column명이 달라서 오류가 났었다.

 

두번째 Column정보인 USER_KEY부분에서 변수명을 userKey로 했어야 했는데,
UserKey로 오타가 나서 findByUserKey를 했을 때 값이 다른것으로 인식했던 것이다.

package com.isu.auth.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Entity
@Getter
@Setter
@NoArgsConstructor
@Table(name="TB_AUTH_INFO")
public class TbAuthInfo {
	
	@Id
	@Column(name="USER_ID")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long userId;
	
	@Column(name="USER_KEY")
	private String userKey;
    
    //private String UserKey;
    //오류가 났던 부분!!
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "CREATE_DATE", updatable = false, insertable = false)
	private Date createDate;
	
}

 

log에 나온 부분과 선언한 column명에 오타가 없는지 확인해보면 된다!!