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명에 오타가 없는지 확인해보면 된다!!