2013-07-15 1 views
8

이 질문은 ActiveAndroid에 대한 것이지만 ORM에 익숙한 사람이면 누구나이 질문에 대답 할 수 있습니다.활성 Android 다 대다 관계

ActiveAndroid는 대화 형으로 다 - 대 - 다 관계를 수행하는 방법을 제공하지 않습니다. 내가 솔루션을 검색하는 동안 발견 한 것은이 GitHub의 문제였다 : 나는 그것을 명시 적으로 관계 테이블을 만드는 것 이해 https://github.com/pardom/ActiveAndroid/issues/46

, 그러나 나는 다음과 같은 부분이 아무것도 유용 할 것으로 예상되는 방법을 이해하지 않습니다

public List<Foo> foos() { 
    return getMany(Foo.class, "FooBar"); 
} 
public List<Bar> bars() { 
    return getMany(Bar.class, "FooBar"); 
} 

이렇게하면 SELECT * FROM Foo where Foo.FooBar = FooBar.Id;과 같은 쿼리가 생성됩니다. 최대 하나의 Foo 행을 반환합니다. 내가 놓친 게 있니?

조인과 관련된 쿼리가 필요하지 않습니까?

+0

는 다른 장소에 내 대답입니다 : [Activeandroid 대다 (HTTP : // 유래 .com/questions/26207948/activeandroid - 다 대 다 관계/39203783 # 39203783) –

답변

4

의 당신이 하나의 특정 줄에 대한 모든 FOOS를 선택하고 싶은 말은하자,이 작업을 수행 할 것입니다 :

여기
List<Foo> foos = ((Foo) new Select().from(FooBar.class) 
       .where("Foo = ?", this.getId()) 
       .executeSingle()).foos(); 
+0

Bar.java에 포함되어 있습니까? – Waclock

+0

@Waclock, 예. 그리고 나는 FooBar에 캐스트해야한다고 생각합니다. – naXa