如何通过GreenDAO实现双向一对一的关系?

NrN*_*ifi 4 java orm android greendao

我将ORM GreenDAO用于我的Android应用程序的DAL层.我在两个表之间的一对一关系中遇到了问题.例如:

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
Run Code Online (Sandbox Code Playgroud)

这种关系错了吗?

当我定义它,我不能把page.getBookmark()页面类

如果这是真的,我是否能以一对一的关系使其双向化?

Mar*_*ger 5

首先,一对一关系的良好用例很少见.你确定它不是一对多吗?如果你仍然认为它是一对一的:将两个实体合并为一个是否有意义?

除此之外,bookmark.addToOne(page,pageIdProperty)很好,而page.addToOne(bookmark,pageIdProperty)不起作用.To-one关系要求id属性位于同一实体中.To-many会以这种方式工作,请查看关于详细信息的文档.