2013-07-15 5 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;のようなクエリになります。これは多くとも1つのFoo行を返します。何か不足していますか?

参加を含むクエリは必要ありませんか?

+0

は別の場所に私の答えです:[Activeandroid多対多](のhttp:// stackoverflowの.com/questions/26207948/activeandroid-多対多関係/ 39203783#39​​203783) –

答えて

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