我遇到了一个非常奇怪的问题,也许你们中的一个人可以对此有所了解。我会很感激 :)
我正在使用 Objectify 1.1rc 模块为 Play 开发应用程序!框架 1.1。我有 2 个相关对象,其相关部分是:
public class User extends ObjectifyModel<User> {
[...]
public List<Key<Theatre>> theatres;
[...]
}
public class Theatre extends ObjectifyModel<Theatre> {
[...]
}
一些背景:
- 我正在使用 Google 代码存储库中的 Objectify 1.1rc(Play 存储库中的模块似乎在 Play 中失败!1.1)示例应用程序运行良好
- 我将现有对象中的对象基于 Play Framework (Showcase) 的 Objectify-1.1rc 模块提供的示例应用程序。
- 我通过将我的应用程序和示例应用程序(展示)指向同一个 CRUD 模块来进行调试和测试。
- 我可以毫无问题地使用 Java 代码链接它们。
目前我有 2 个问题无法解决,它们是:
M:1 关系未保存
我对 User 类的“剧院”关系有疑问。当通过 CRUD 编辑用户类型的对象时,我可以看到将剧院实例与用户相关联的多选控件,当我单击其中的一些(一个或多个)并保存对象时,关系没有保存,使得无法通过 CRUD 接口链接对象。
怎样才能让它发挥作用?
CRUD 代码未被一个应用程序访问但由另一个应用程序访问
Objectify 模块 (Showcase) 中的示例应用程序允许我使用 CRUD 保存 M:1 关系。正如我之前提到的,我的应用程序和展示都指向同一个 CRUD 模块,因此它们应该使用完全相同的代码。通过日志输出进行调试,我注意到我的应用程序使用了 CRUD,但示例应用程序使用了所有代码直到某个点。
CRUD 模块遍历到“tag/form.html”,找到一个“relation”类型的字段(在我的代码和示例应用程序中)但是当调用标签“#{crud.relationField}”时发生了一些奇怪的事情:我的应用程序进入 CRUD 模块中定义的标签。示例应用程序不会访问该代码,不会触发添加到该标记的日志(在文件的任何位置)。
我已经在示例应用程序中搜索了标签的任何替换,但我找不到。你可以猜到,这让他们发疯,让我开始相信生活在我桌面上的绿色小妖精(没有给我金子,该死的!)
有谁知道为什么会这样?我能找到示例应用程序正在执行的代码吗?找到它很可能会解决问题 #1
非常感谢!