我有一个使用 ORM 的 Aqueduct 项目,其数据对象如下:
关系:
用户有很多东西(多对一)
A Thing 有一个 Thinglet(一种,一对一)
一个事物有一个小事物(另一种,一对一)
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 工作正常,并且数据库中的数据看起来也很好。