Thursday, June 7, 2018

JPA EntityManager를 이용한 Query 생성 시 발생하는 QuerySyntaxException 해결법

JPA EntityManager를 이용한 Query 생성 시 발생하는 QuerySyntaxException 해결법

JPA의 EntityManager를 사용하여 쿼리를 생성할 때, "Foo is not mapped"과 같은 QuerySyntaxException 오류가 발생하는 경우가 있습니다. 이 문제는 주로 모델 설정에서 발생합니다.

모델 설정 예시

@Entity
@Table(name="USERS")
@Data
public class User {
    @Id
    @Column(length = 10)
    private String id;

    @Column(length = 20, nullable = false)
    private String name;

    @Column(length = 20, nullable = false)
    private String password;
}

위와 같이 모델을 설정했다면, 쿼리 내에서 테이블 명을 'USERS'가 아닌 클래스 명인 'User'를 사용해야 합니다. 이는 JPA의 특성으로 인해 클래스 이름이 엔티티 이름으로 매핑되기 때문입니다.


0 개의 댓글:

Post a Comment