1、易于學習
2、支持主流數據庫,包括MS SQL Server 2000、Oracle 9i、DB 2 7、Sybase、My SQL 5.0。應該有良好的支持多數據庫方式,而不是現在一些流行O-R Mapping多數據庫支持方式那么笨拙。
3、包括數據查詢和對象查詢。明確區分兩種查詢,他們對應的OQL功能應該有所不同。
4、能夠處理復雜對象。例如多層一對多包含關系。評注,現在流行的O-R Mapping引擎處理復雜對象都不好,包括Hibernate 3.0。
5、有較為完整的DSL。不單應該包括用于運行時數據處理的OQL,還應該包括定義期的語言。
6、不完整裝載。
7、對Event-Driven模型有良好的支持,并且支持請求合并
8、O-R Mapping應該更像一個“編譯器”和“執行引擎”的組合,這個編譯器輸入是OQL,編譯時使用各種技巧進行優化,編譯的中間結果可以存儲,可以生成存儲過程。甚至可以根據執行過程的統計信息,采用不同的優化手段,調整最終的執行計劃。
9、應該有良好的性能
我認為,一個實現良好O-R Mapping引擎,可以運用大量的優化技巧,其中一些優化技巧,是相當多開發人員都不掌握的,還有一些優化技巧,使用起來比較復雜,開發人員為了兼顧開發效率,不予以使用的。所以,一個實現良好O-R Mapping引擎,應該能夠比大多數開發者直接使用JDBC要快。