How to work with nested relationships in Room How to work with nested relationships in Room sqlite sqlite

How to work with nested relationships in Room


It seems that you can have nested relations (the Javadoc on documentation page is for some reason not showing the whole code and is misleading for that reason).

It is working:

public class AWithB {    @Embedded    public A a;    @Relation(parentColumn = "id", entityColumn = "aId", entity = B.class)    public List<BWithC> bWithC;    public AWithB() {}}

For relations Many To One you can still use @Relation annotation. For some reason you cannot have simple instance - you need a collection here. But it is working:

public class BWithC {    @Embedded    public B b;    @Relation(parentColumn = "oneCId", entityColumn = "id")    public Set<C> oneC;    @Relation(parentColumn = "anotherCId", entityColumn = "id")    public Set<C> anotherC;    public BWithC() {}}