테이블이 있습니다.이 테이블을 AAA라고 부르 자요, BBB가 할당 된 추가 테이블에 일대 다 정의가 있습니다. 그것은 그런 일 같습니다기본 레코드의 목록 기반 레코드 액세스
public class AAA
{
...
@OneToMany(orphanRemoval=true, fetch=FetchType.LAZY, mappedBy="aaa")
private List<BBB> bbbs;
...
}
나는 나에게 하나 이상의 BBBs있는 모든 AAAS을 줄 것이다 JPA 쿼리를 실행하려면를, 그래서 SIZE(aaa.bbbs)
을 사용했다. 그러나 결과 집합은 각 aaa의 첫 번째 bbb의 타임 스탬프에 따라 정렬되기를 원합니다.
실제 예 : 나는 각자 자신의 프로필에 추가 한 최신 사진으로 주문한 내 모든 Facebook 친구를 얻고 싶습니다. 이 경우 AAA는 "친구"이고 BBB는 "그림"이 될 것이며 Picture.CreatedTimestamp로 친구를 주문하고 싶습니다.
기본적으로 각 aaa에 대한 bbbs의 첫 번째 항목에 액세스해야하며 순서대로 정렬해야합니다. 목표를 달성하기 위해해야 할 일은 무엇입니까? 최신 타임 스탬프를 찾기 위해 하나의 크기를 결정하고 다른 - 당신은 최대 절전 모드를 사용하는 경우
구문에 대해 확실합니까? "GROUP BY"는 JPA에서 작동하지 않습니다. MySQL에서는 PostgreSQL을 사용하고 있으며 일반적인 JPA 솔루션을 찾고 있습니다. –
@Eldad : 'GROUP BY'는 JPA에서 작동합니다. 완벽하게 유효한 JPA 쿼리입니다. – axtavt
JPA 문서를 더 자세히 살펴보면, 당신이 옳은 것처럼 보이지만 실제로는 작동하지 않을 것입니다 (나는 Hibernate를 사용하고 있습니다). 귀하의 쿼리를 사용하려고 할 때 예외가 있습니다 : "오류 : 열"aaa.some_aaa_column "GROUP BY 절에 나타나야합니다 또는 집계 함수에서"사용해야합니다. –