0

我有一个使用 ORM 的 Aqueduct 项目,其数据对象如下:

关系:

  1. 用户有很多东西(多对一)

  2. A Thing 有一个 Thinglet(一种,一对一)

  3. 一个事物有一个小事物(另一种,一对一)

class _User {
  String userId;

  ...
  ManagedSet<Thing> thingRef;
}

class _Thing {
  @Relate(#thingRef)
  User user;

  @Relate(#oneKindRef)
  Thinglet oneKind;

  @Relate(#anotherKindRef)
  Thinglet anotherKind;
}

class _Thinglet {
  ...

  ManagedSet<Thing> oneKindRef;
  ManagedSet<Thing> anotherKindRef;
}

现在,我想更新Thingfor a User,所以我这样做:

Thing myThing = ...;
final query = Query<Thing>(context)
  ..where((thing) => thing.user.userId).equalTo(someUserId)
  ..values = myThing;

final result = await query.updateOne();

这会引发一个 SQL 错误说missing FROM-clause entry for table "t1"

我到底在这里想念什么?我知道模型很好,因为inserts 和fetchs 工作正常,并且数据库中的数据看起来也很好。

4

1 回答 1

0

您的“where”缺少表达式,例如“equalTo”:

  ..where((thing) => thing.user.userId).equalTo(1)
于 2019-08-29T16:13:22.893 回答