DB Flow中的一对多

Hyp*_*erX 1 android android-database

我正在尝试使用DBFlow与我的对象,我有一对多的关系(用户有很多业务),我在他们的官方维基上关注教程,但它只是不想工作.

这是我的用户:

@Column
@PrimaryKey(autoincrement = true)
private Integer id;

@Expose
@Column
private Boolean allow_offline;

@Expose
@Column
private Integer user_level;

@Expose
@Column
private Integer account_validity;

@Expose
@Column
private Integer selected_business;

@Expose
@Column
private String user_id;

@Expose
@Column
private Boolean allow_print;

@Expose
@Column
private String email;

@Expose
private List<Business> businesses;
Run Code Online (Sandbox Code Playgroud)

和我的生意

@Expose
@Column
@PrimaryKey
private Integer id;
@Expose
@Column
private String name;
@Expose
@Column
private Boolean is_zero_tax;
@Expose
@Column
private String header;
@Expose
@Column
private String footer;
Run Code Online (Sandbox Code Playgroud)

我应该像在businessBusinessWithUser那样在Business上制作一个方法吗?或者我应该如何链接这个?

Def*_*era 5

这是dbFlowVersion ='3.0.0-beta1'的代码.我简化你的课程:

    @Table(database = DbFlowDataBase.class)
    public class User extends BaseModel {

    @PrimaryKey(autoincrement = true)
    Integer id;

    List<Business> businesses;

    @OneToMany(methods = OneToMany.Method.ALL, variableName = "businesses")
    public Field[] dbFlowOneTwoManyUtilMethod() {
        if (businesses == null) {
            businesses = SQLite.select()
                    .from(Business.class)
                    .where(Business_Table.userId.eq(id))
                    .queryList();
        }
        return businesses;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是Business.class:

@Table(database = DbFlowDataBase.class)
public class Business extends BaseModel {

    @PrimaryKey(autoincrement = true)
    public Integer id;

    @Column
    Integer userId;

}
Run Code Online (Sandbox Code Playgroud)

注意dbFlowOneTwoManyUtilMethod是一个充满魔力的人.