org.hibernate.QueryException: could not resolve property
오류 발생 원인 : 쿼리문 작성시 이름을 데이터베이스가 아닌 jpa로 생성한 필드 이름을 넣어줘야한다.
Order클래스
public class Order {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "order_id")
private Long id;
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "member_id")
private Member member;
}
Member클래스
public class Member {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "member_id")
private Long id;
}
오류코드
public List<Order> findByMemberId(Long id) {
return em.createQuery("select o from Order o where o.member_id = :id", Order.class)
.setParameter("id", id)
.getResultList();
}
정상코드
public List<Order> findByMemberId(Long id) {
return em.createQuery("select o from Order o where o.member.id = :id", Order.class)
.setParameter("id", id)
.getResultList();
}