3

我在 android 应用程序中使用 dbflow 并有 3 个表(为简洁起见进行了简化)。

City
int cityId (PK)
String cityName

Company
int compId (PK)
String compName
int city (FK)

Employee
int empId (PK)
String empName
int city (FK)
int company (FK)

我想加入所有 3 个表并将这些字符串列用作 1 个结果。我尝试的是https://github.com/Raizlabs/DBFlow/blob/master/usage/SQLQuery.md上的示例

SQLite.select(Company_Table.EMP_ID, Company_Table.DEPT)
.from(Company.class)
.leftOuterJoin(Department.class)
.on(Company_Table.ID.withTable().eq(Department_Table.EMP_ID.withTable()))
.queryList();

所以我的查询看起来像这样

List<CustomQueryModel> model = SQLite.select(Employee_Table.empName,    
     City_Table.cityName, Company_Table.compName)
     .from(Employee.class)
     .join(City.class, Join.JoinType.INNER)
     .on(Employee_Table.city.withTable().eq(City_Table.cityId.withTable()))
     .join(Company.class, Join.JoinType.INNER)
     .on(Employee_Table.company.withTable().eq(Company_Table.compId.withTable()))
     .queryCustomList(CustomQueryModel.class);

我的问题是我找不到获取这些主键或外键的整数值的方法。

例如。Employee.city.withTable() 的结果是 IntProperty,但是方法“eq()”参数必须是 Integer,我找不到从中获取 Integer 的方法,也没有任何其他方法可以加入表。

4

0 回答 0