Я читаю иерархию объектов с ORMLite.Он имеет форму дерева, у родителей есть @ForeignCollection
из 0+
детей, и каждый ребенок ссылается на своего родителя с @DatabaseField(foreign=true)
.Я читаю и сохраняю всю иерархию сразу.
Поскольку я новичок в ORM в целом и в ORMLite, я не знал, что когда объекты с имеют одинаковый идентификатор в базе данных считываются, они не будут созданы как фактически один и тот же объект с такой же идентичностью , но как несколько дубликатов с одинаковым идентификатором ,Это значит, что сейчас я сталкиваюсь с проблемой, которая (скажем, "->" означает "относится к") A -> B -> C! = C -> B -> A.
Я думалчтобы решить проблему, вручную прочитав их через предоставленные DAO и собрав их вместе по их идентификатору, гарантируя, что объекты с одинаковым идентификатором имеют одинаковую идентичность .
Есть ли ORMLite-nativeспособ решить это?Если да, что это, если нет, каковы общие способы решения этой проблемы?Это общая проблема ORM?У него есть имя (я хотел бы узнать о нем больше)?
Редактировать:
Моя иерархия такова, что одно здание состоит из нескольких этажей, где каждый этаж знает свое здание, икаждый этаж содержит несколько зон, где каждая зона знает свой этаж.