跳转到内容

WebObjects/EOF/使用 EOF/EOF 最佳实践

来自维基教科书,开放书籍,开放世界

首先,不要造成伤害 - 在阅读本文之前,请阅读并遵守EOF 诫命

创建 EOEnterpriseObjects

[编辑 | 编辑源代码]

不要使用

 MyEO eo = new MyEO();
 ec.insertObject(eo); 

首选这种形式

 MyEO eo = (MyEO) EOUtilities.createAndInsertInstance(ec, "MyEO"); 

这有两个主要优点。一是,它防止使用未插入 EOEditingContext 的 EO(参见EOF 诫命)。二是,它支持 EOModel(s) 中两个或多个实体由同一个 Java 类实现的情况。

这里需要问一个合理的问题,如果这很好

 MyNewPage nextPage = (MyNewPage)pageWithName(MyNewPage.class.getName()); 

那么为什么不这样呢?

 MyEO eo = (MyEO) EOUtilities.createAndInsertInstance(ec, MyEO.class.getName()); 

这里的关键是,createAndInsertInstance? 的第二个参数是来自模型的 EOEntity 名称,而不是类名。对于组件创建,它是类名。问题是实体名称和类名通常不相同。类名将包含包名,但实体名称不会。此外,我遇到过模型中的多个实体由同一个类实现的情况。Gary Teter 在 WireHose 框架中很好地利用了这一点。

华夏公益教科书