8

虽然这个问题是关于 ActiveAndroid 的,但任何熟悉 ORM 的人都可能会回答这个问题。

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一行。我错过了什么吗?

您不需要涉及联接的查询吗?

4

1 回答 1

4

假设您想为一个特定的 Bar 选择所有 Foos,您可以这样做:

List<Foo> foos = ((Foo) new Select().from(FooBar.class)
                .where("Foo = ?", this.getId())
                .executeSingle()).foos();
于 2014-05-12T01:38:29.577 回答