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”
- 重現步驟
- 開啟 EOModeler
- 按照 WebApplications 文件設定新模型(檢視 http://developer.apple.com/documentation/WebObjects/Web_Applications/EnterpriseObjectsApp/chapter_11_section_3.html#//apple_ref/doc/uid/TP30000121/BAJEFFEH)
- 以與上述相同的方式生成第二個名為 Book 的實體。讓它只有一個名為“title”的屬性和一個名為“bookID”的主鍵?; 與實體“Author”相同的屬性
- 嘗試根據“Using EOModeler”文件設定多對多關係?(檢視 http://developer.apple.com/documentation/WebObjects/UsingEOModeler/5WorkingWithRelationships/chapter_5_section_7.html#//apple_ref/doc/uid/DontLinkBookID_504-DontLinkChapterID_4-BABGHHGG)
- 切換到圖表檢視
- 選擇兩個實體
- 從“屬性”選單中選擇“加入多對多”
- 為新建立的實體提供一個表名(例如“AUTHOR_BOOK”?;)
- 從“模型”選單中檢查一致性(一切正常)
- 嘗試透過選擇第一個實體“Author”,然後從“屬性”選單中選擇“生成 SQL...”?;,生成用於建立模型表的 SQL 命令。
- 砰!錯誤訊息。
- 結果
我希望該命令能夠完美地執行並生成 SQL 語句,以便我可以建立我的表並使用我的模型。
- 迴歸
嘗試不同的專案設定,隔離到最少的表數量。重新閱讀文件。沒有解決方案。