2012-08-10 3 views
0

나는 사용자가 방문했는지 여부를 표시 할 수있는 내 로컬 술집 목록이있는 무의미한 앱을 만들어서 최대 절전 모드로 스스로를 가르치려고합니다. 따라서 기본적으로 멋진 체크리스트입니다.jpa/hibernate의 조인 테이블을 기반으로 조건부 모델을 만들려면 어떻게해야합니까?

raw SQL을 사용하여이 글을 작성한 경우 사용자 테이블과 다른 두 테이블의 ID를 연결하는 조인 테이블은 특정 사용자를 위해 방문한 것으로 표시되었습니다. .

쿼리 내가 (포스트 그레스에서) 이런 식으로 뭔가 내가 가야하는 방법을 알아 내려고 노력하고있어

SELECT *, (CASE WHEN up.id IS null THEN 0 ELSE 1 END) AS visited 
FROM pubs p 
LEFT JOIN users_pub up ON p.id = up.pubId 

될 것이라고 지정된 사용자에 대한 방문 상태의 전체 목록을 가져 오는 데 사용하십시오 내 모델 클래스에 주석을 달아이 방문한 속성을 표시합니다. 아이디어?

하이버 네이트 문서는 초보자에게는 꽤 다루기 힘들 수 있으므로 올바른 방향으로 조금 움직여 주시면 감사하겠습니다. 많은 감사합니다.

답변

0

이 모델을 만드는 가장 쉬운 방법은 @ManytoMany 컬렉션이 PubUser 클래스이므로 사용자를 읽고 방문한 술집 컬렉션을 가져올 수 있습니다. 그 술집들이 pubsVisited 컬렉션의 경우는 true를 돌려

hasVisitedPub(id) 

:

는 그 다음 같은 사용자에 방법을 쉽게 구현할 충분하다.

사용하십시오 Map<id, Pub> 당신이 조회보다 효율적으로 술집의 큰 숫자를 방문했던 사람들을 위해 확인하려면 그들이 :-)해야

관련 문제