Ягуар орм - рефлексивные отношения - PullRequest
0 голосов
/ 10 сентября 2018

Поддерживает ли jaguar_orm рефлексивные отношения?

У меня есть класс Category, который может быть частью другой категории:

class Category {
  /// constructor
  Category();
  Category.make(this.id, this.name);

  /// fields
  @PrimaryKey()
  int id;

  @Column(isNullable: false)
  String name;

  @BelongsTo(CategoryBean, isNullable: true, refCol: 'id')
  int parentCategoryId;

  /// database
//  String toString() => "Product($id, $name, $parentCategoryId)";
  String toString() => "Product($id, $name)";
}

Когда я пытаюсь создать его, я получаю переполнение стека следующим образом:

Exception while parsing field: id!
Stack Overflow
#0      _Uri._uriEncode (dart:core/runtime/liburi_patch.dart:34:3)
#1      _Uri._makePath.<anonymous closure> (dart:core/uri.dart:2116:23)
#2      ListIterable.join (dart:_internal/iterable.dart)
#3      _Uri._makePath (dart:core/uri.dart:2117:12)
#4      _SimpleUri.replace (dart:core/uri.dart:4358:19)
#5      urlOfElement (package:source_gen/src/utils.dart:87:11)
#6      _MirrorTypeChecker.isExactly (package:source_gen/src/type_checker.dart:264:49)
#7      _ListBase&Object&ListMixin.any (dart:collection/list.dart)
#8      TypeChecker.isAssignableFromType (package:source_gen/src/type_checker.dart:162:57)
#9      ParsedBean._makeField.<anonymous closure> (package:jaguar_orm_gen/src/parser/parser.dart:351:47)
#10     WhereIterator.moveNext (dart:_internal/iterable.dart)
#11     MappedIterator.moveNext (dart:_internal/iterable.dart:391:19)
#12     new List.from (dart:core/runtime/libarray_patch.dart:40:17)
#13     ParsedBean._makeField (package:jaguar_orm_gen/src/parser/parser.dart:472:34)
#14     ParsedBean._parseFields (package:jaguar_orm_gen/src/parser/parser.dart:325:21)
#15     ParsedBean.detect (package:jaguar_orm_gen/src/parser/parser.dart:74:5)
#16     ParsedBean.detect (package:jaguar_orm_gen/src/parser/parser.dart:85:56)

Это повторяется в течение некоторого времени.

Что мне нужно сделать, чтобы предотвратить переполнение стека?

1 Ответ

0 голосов
/ 26 января 2019

Вам необходимо добавить декоратор @HasOne или @HasMany в зависимости от вашего случая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...