0

如何加入ObjectBox中具有一二多关系的两个类?我有两个表如下:@Entity

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 操作?

4

2 回答 2

1

从版本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()

这被称为“链接”,并且有关于它的文档和一个附加示例。

于 2018-08-13T09:56:23.753 回答
0

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();
于 2019-11-12T17:57:52.483 回答