0

我想将 Auth User Table 用于其他表。具体来说,我想将其他表的 ID 用作外键。在我开始在 chanel.dart 中实现 OAuth2 之前,它运行良好。现在它抛出一个错误:

 Data Model Error: Relationship 'resourceOwner' on '_ManagedAuthToken' expects that just one 'ManagedObject' subclass uses a table definition that extends 'ResourceOwnerTableDefinition. But the following implementations were found: User,User. That's just how it is for now. 

我不知道如何解决这个问题。而且我认为很明显,如果您有多个用户,并且有个人资料,您应该能够将 userID 作为外键,以显示所有权。

编辑:

ManagedObject 声明如下所示:

import 'package:lobBook_backend/lobBook_backend.dart';
import 'Book.dart';
import 'User.dart';

class _userBooksLikes extends ManagedObject<_userBooksLikes> implements _userBooksLikes{

}

class _userBooksLikes {

  @primaryKey
  int id;

  @Relate(#usrEvntSts, onDelete: DeleteRule.cascade)
  User user;

  @Relate(#usrEvntSts, onDelete: DeleteRule.cascade)
  Book book;

  @Column(indexed: true)
  int status;
}

import 'package:lobBook_backend/lobBook_backend.dart';

import '_userBooksLikes.dart';
import 'User.dart';

class Book extends ManagedObject<_Book> implements _Book {}

class _Book {
  @primaryKey
  int id;

  @Column(indexed: true)
  String name;

  @Column(indexed: true)
  DateTime date;

  @Relate(#ownedBooks)
  User user;

  ManagedSet<_userBooksLikes> usrEvntSts;

}

import 'package:aqueduct/managed_auth.dart';
import 'package:lobBook_backend/lobBook_backend.dart';
import 'package:lobBook_backend/model/_userBooksLikes.dart';
import 'Book.dart';

class User extends ManagedObject<_User> implements _User, ManagedAuthResourceOwner<_User> {}

class _User extends ResourceOwnerTableDefinition {

  ManagedSet<_userBooksLikes> usrEvntSts;

  ManagedSet<Book> ownedBooks;

}
4

0 回答 0