Как сделать двунаправленное отношение «один-к-одному» от GreenDAO?

Я использую ORM GreenDAO для слоя DAL моего приложения для Android. У меня проблема в отношениях между двумя таблицами. например:

Entity page = schema.addEntity("Page"); Entity bookmark = schema.addEntity("Bookmark"); Property pageIdProperty = bookmark.addLongProperty("pageId").getProperty(); bookmark.addToOne(page, pageIdProperty); // any bookmark related to a page page.addToOne(bookmark, pageIdProperty); // any page can has a bookmark 

Это ошибка отношения?

Когда я определяю его, я не могу вызвать page.getBookmark() в классе страницы

Если это так, то каким образом я могу сделать его двунаправленным для отношений один к одному?

Во-первых, хорошие варианты использования отношений «один к одному» встречаются редко. Вы уверены, что это не один-ко-многим? Если вы все еще считаете, что это взаимно однозначно: имеет ли смысл объединить оба объекта в один?

Кроме того, bookmark.addToOne (page, pageIdProperty) в порядке, в то время как page.addToOne (bookmark, pageIdProperty) не работает. Для отношений «один» требуется, чтобы свойство id находилось в одном объекте. Для многих это будет работать, посмотрите подробности документации.

Лучшим обходным решением до сих пор является использование addToOne в сущности, где существует внешний ключ, и addToMany с другой стороны. Это не очень неудобно, так как вам нужно только убедиться, что вы добавите один объект в список.

Intereting Posts
Android Lollipop прекратил действие ActionBar, как мне перенести приложение, которое использует ActionBar и Tabs? Как разместить ActionBar на SlidingMenu (например, в приложении Evernote)? Могу ли я программно определить, есть ли какие-либо устройства Chromecast в текущей сети WiFi? Запустить Bluetooth из ADB или при загрузке? Как найти самые близкие места на основе текущего lat и long с использованием Parse API (parse.com) в android Говоря с модемом с AT-командами на Android Изменение цвета текста в android mediacontroller Значение предупреждения / ошибки – GbaRequest – GbaRequest: Вызывается конструктором 222 userAgent Apache-HttpClient / UNAVAILABLE Создание автономного проекта андроидной библиотеки с помощью Android Studio (0.8.14) Тревога в AlarmManager стирается, когда процесс убит Отображение прокручиваемого текста на шатрах в Android Android: длительность действия медиаплеера Служба Android останавливается, когда приложение закрыто Откройте контекстное меню, нажав на пункт меню Android и Facebook: как получить изображение зарегистрированного пользователя