代码之家  ›  专栏  ›  技术社区  ›  Amin Memariani

如何加入ObjectBox

  •  0
  • Amin Memariani  · 技术社区  · 8 年前

    我怎么能参加两个班 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*/
    
    }
    

    如何实现联接操作?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Uwe - ObjectBox    8 年前

    自版本 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 再举一个例子。

        2
  •  0
  •   Atiar Talukdar    6 年前

    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();