0

我遇到了一个非常奇怪的问题,也许你们中的一个人可以对此有所了解。我会很感激 :)

我正在使用 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

非常感谢!

4

1 回答 1

0

Ok, found the issue to #1. I had a method called "getTheatres()" (should have had another name, was an error) and that was breaking the CRUD. Renaming the method solve issue #1.

I still didn't find why #2 was happening, but I believe I'll leave as one of those "worked in my computer" issues so common in our world...

于 2010-12-07T22:22:38.133 回答