[JPA에러]Cannot create TypedQuery for query with more than one return using requested result type
[엔티티]
@Entity
@Getter
@Setter
@NamedQuery(name="Emp.findBySalNamed",
query="select e.empno, e.ename from Emp e where e.sal > :sal")
public class Emp {
@Id
@GeneratedValue
private Long empno;
private String ename;
private String job;
private Long sal;
@ManyToOne
@JoinColumn(name = "deptno")
private Dept dept;
}
자바코드에서...
List<Emp> result = em.createNamedQuery("Emp.findBySalNamed", Emp.class)
.setParameter("sal", 2000)
.getResultList();
JPQL 또는 NamedQuery의 쿼리구문에서 리턴결과 타입을 클래스타입으로 하고 위의 경우처럼
필드명을 쓴 경우 타입이 여러개라는 오류가 발생한다.
(Cannot create TypedQuery for query with more than one return using requested result type)
Select되는 결과 타입을 Emp.class로 했으면 다음과 같이 NamedQuery를 수정해야 한다.
@NamedQuery(name="Emp.findBySalNamed",
query="select e from Emp e where e.sal > :sal")
물론 JPQL을 직접사용했을 때도 동일하다.
String someJPQL = "select e.empno, e.ename from Emp e where e.sal > :sal";
em.createQuery(someJPQL, Media.class);
=>
String someJPQL = "select e from Emp e where e.sal > :sal";
댓글 없음:
댓글 쓰기