假设我有一个表,其中包含与其他表相关的 id。我想获取所有对象,因为表格的组合构成了一个对象。我自然会加入他们,但当某些字段是可选的时我会遇到问题。所以我想用这个“得到所有”。
from(mainTable,
optionalFieldTable,
optionalFieldTable,
requiredFieldTable1,
requiredFieldTable2)((main,o1,o2,r1,r2) =>
where(
(main.someId1 === r1.id) and
(main.someId2 === r2.id) and
(main.optId1.inhibitWhen(main.optId1 == None) === o1.id) and
(main.optId2.inhibitWhen(main.optId2 == None) === o2.id))
select(main,o1,o2,r1,r2)
).toList
上面给了我一个空列表。如果我从查询中删除所有可选字段,尽管它可以工作。那么我想知道是否有一种特殊的方法来测试可选的 id 是否为 None 或 Some other than the inhibitor when?
我怀疑它与返回元组有关,因为它试图返回 O1 和 O2 对象而不是 Option[O1] 和 Option[O2]