跳转到内容

WebObjects/EOF/建模/EOModeler 错误

来自维基教科书,开放世界中的开放书籍
  • 属性编辑器怎么会这么 buggy?
  • 这分散了 WebObjects 的强大功能

---

您遇到了哪些错误?您可以更具体一些吗?

对 EOModeler 的第一印象是,我们可以用它做很多事情,而且它通常一开始就能做到。当模型变得更复杂时,问题就出现了。

  • 模型编辑错误
    • 如果您使用继承,而且大多数现实生活中的应用程序都使用继承,EOModeler 会表现出一些非常奇怪的行为。
    • 如果您复制并粘贴由原型定义的属性,有时它不会复制它或只复制部分信息,特别是在您覆盖了原型的一些属性之后。(它每次都会丢失主键)
    • 在父实体中复制和粘贴关系不会反映在子实体中。
    • 在某些深度继承中,打开或关闭属性位并不总是传播到子实体。
  • Project Builder 集成
    • 当您生成新的 java 文件时,它会弹出一个对话框,询问您是否要将文件插入项目中,但点击“确定”按钮不会有任何反应。

合并功能有点不错,但我们需要一个更健壮的机制来分离生成的代码和自定义代码。

  • 运行时错误
    • 我知道的一个错误,而且它经常会让我遇到麻烦,虽然幸运的是它并不经常发生,那就是 internalInfo 错误。EOModeler 在模型文件中插入了一些在运行时不会使用的属性。有时这些属性会导致崩溃,例如在原型实体或关系上。

---

新手说

我在尝试将 EOModeler 文件与我的 mySQL 数据库同步时遇到一个错误。我怀疑是适配器的问题,但我不确定。它弹出了一个警报框:“警告:没有提供原因”。如何调试适配器的操作?我在 omni 或 apple 中都找不到关于此错误的任何信息。

我不确定该功能自 v5 以来是否一直有效,需要手动同步。


“警告:没有提供原因”错误可能是因为您的数据库包含仅包含主键的表(例如,用于创建多对多关系的表)。EOF 的逆向工程代码在遇到没有类属性的表时会卡住。

另一个错误。我将它提交给 Apples Bugreporter

在 WebObjects EOModeler 中,我尝试按照 EOModeler 文档的描述设置多对多关系。这导致了一个问题,我无法从我的实体生成 SQL 语句。显示了一个错误消息,提示“*** -[NSCFDictionary? setObject:forKey:]: attempt to insert nil value”

  • 重现步骤
  1. 打开 EOModeler
  2. 按照 WebApplications 文档的描述设置新模型(查看http://developer.apple.com/documentation/WebObjects/Web_Applications/EnterpriseObjectsApp/chapter_11_section_3.html#//apple_ref/doc/uid/TP30000121/BAJEFFEH
  3. 以相同的方式生成第二个实体 Book,如上所述。让它只有一个属性“title”和一个主键“bookID”?;与实体“Author”相同的属性。
  4. 尝试按照“Using EOModeler”文档的描述设置多对多关系(查看http://developer.apple.com/documentation/WebObjects/UsingEOModeler/5WorkingWithRelationships/chapter_5_section_7.html#//apple_ref/doc/uid/DontLinkBookID_504-DontLinkChapterID_4-BABGHHGG
  5. 切换到图表视图
  6. 选择两个实体
  7. 从“属性”菜单中选择“在多对多中加入”。
  8. 为新创建的实体指定一个表名(例如“AUTHOR_BOOK”?;)。
  9. 从“模型”菜单中检查一致性(一切正常)。
  10. 尝试通过选择第一个实体“Author”然后从“属性”菜单中选择“生成 SQL...”来生成用于创建模型表的 SQL 命令。;。
  11. 嘭!错误信息。
  • 结果

我希望该命令能够完美地运行并生成 SQL 语句,以便我可以创建我的表并使用我的模型。

  • 回归

尝试了不同的项目设置,隔离到最少的表数量。重新阅读文档。没有解决方案。

华夏公益教科书