跳转到内容

WebObjects/EOF/Modeling/EOModeler 错误

来自维基教科书,开放的书籍,开放的世界
(从 编程:WebObjects/EOF/Modeling/EOModeler 错误 重定向)
  • 属性编辑器怎么会这么 buggy?
  • 这分散了 WebObjects 的强大功能

---

你遇到了什么类型的错误?你能具体一点吗?

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

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

合并功能还不错,但我们需要一种更强大的机制来分离生成的代码和自定义代码。

  • 运行时错误
    • 我知道的一个,而且经常会困扰我,尽管幸运的是并不经常,就是 internalInfo 错误。EOModeler 在模型文件中插入一些运行时不使用的属性。有时这些属性会导致崩溃,例如在原型实体或关系上。

---

新手说

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

我不确定这个功能从 v5 开始就有效,需要手动同步。


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

另一个错误。我向 Apple 的 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 语句,以便我可以创建我的表并使用我的模型。

  • 回归

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

华夏公益教科书