Поддерживает ли 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)
Это повторяется в течение некоторого времени.
Что мне нужно сделать, чтобы предотвратить переполнение стека?