跳轉到內容

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 語句,以便我可以建立我的表並使用我的模型。

  • 迴歸

嘗試不同的專案設定,隔離到最少的表數量。重新閱讀文件。沒有解決方案。

華夏公益教科書