如何加入ObjectBox

How to Join in ObjectBox

如何将两个 类 加入 ObjectBox 中,它们具有一二多的关系? 我有两个表如下: @实体

public class Animal {
    @Id(assignable = true)
    public long id;
    private String name;
    private boolean flying;
    private boolean swimming;
    private boolean walking;
    private ToOne<Zoo> zoo;

.../*setters and getters*/

}

和:

@Entity
public class Zoo {
    @Id
    public long id;
    private String name;
    // a Zoo can have many Animals
    @Backlink
    ToMany<Animal> animals;
.../*setters and getters*/

}

如何实现Join操作?

从版本 2.0.0 开始,您可以执行以下操作:

val builder = box.query().equal(Zoo_.name, "The Big Zoo")
builder.link(Zoo_.animals).equal(Animal_.flying, true)
val flyingAnimals = builder.build().find()

这就叫做"links" and there is documentation,再举一个例子。

https://docs.objectbox.io/queries#add-query-conditions-for-related-entities-links

   @Entity
public class Person {
    @Id long id;
    String name;
    ToMany<Address> addresses;
}
@Entity
public class Address {
    @Id long id;
    String street;
    String zip;
}


// get all Person objects named "Elmo"...
QueryBuilder<Person> builder = personBox
        .query().equal(Person_.name, "Elmo");
// ...which have an address on "Sesame Street"
builder.link(Person_.addresses).equal(Address_.street, "Sesame Street");
List<Person> elmosOnSesameStreet = builder.build().find();