Search code examples
javaandroidormdbflow

Android DBFlow One to Many complete example


I am confused on how to declare Foreign Key in DBFlow. In getting started page for relationship for DBFlow (https://github.com/Raizlabs/DBFlow/blob/f2d90db39a4bf5ffcc0f22032ae20d5328b8d3c3/usage2/Relationships.md), it has example of Queen class but not the Ant nor Colony class.

Does anyone have the complete example that contains Queen + Ant + Colony classes?

Thanks


Solution

  • this is sample code which you want:

    parent table:

    @Table(database = AppDatabase.class)
    public class CafeWebContentCategories extends BaseModel {
        @PrimaryKey
        private int id;
    
        @Column
        private int categoryServerId;
    
        @PrimaryKey
        @Column
        public int cafeServerId;
    
        @Column
        private String title;
    
        @Column
        private boolean isAuto;
    
        public List<CafeWebChildContentCategories> subContentCategories;
    
        @OneToMany(methods = {OneToMany.Method.ALL}, variableName = "subContentCategories")
        public List<CafeWebChildContentCategories> getMyChannelSubContentCategories() {
            if (subContentCategories == null || subContentCategories.isEmpty()) {
                subContentCategories = SQLite.select()
                        .from(CafeWebChildContentCategories.class)
                        .where(CafeWebChildContentCategories_Table.parentId.eq(cafeServerId))
                        .queryList();
            }
            return subContentCategories;
        }
    
        public CafeWebContentCategories() {
        }
    
        // setters and getters
    }
    

    child table:

    @Table(database = AppDatabase.class)
    public class CafeWebChildContentCategories extends BaseModel {
        @PrimaryKey
        @Column
        public int id;
    
        @Column
        public int categoryId;
    
        @Column
        @ForeignKey(tableClass = CafeWebContentCategories.class,
                references = @ForeignKeyReference(columnName = "parentId", foreignKeyColumnName = "cafeServerId"))
        public int parentId;
    
        @Column
        private String title;
    
        public CafeWebChildContentCategories() {
        }
    
        // setters and getters
    }
    

    please ask me if you have question about that