Рис. 6. Сводка качественной оценки решений проблемы потери соответствия
| PJama
OPJ |
Exodus
Ontos EJB 1.0 |
ObjStore
O2 JDO 1.0 EJB 2.0 |
Hibernate
TopLink |
ODBC
JDBC |
SQLJ | S/NQ | Linq | |
| Типы | ||||||||
| T1. Отображение | √ | √ | √ | √ | × | × | √ | √ |
| T2. Null-значения | √ | √ | √ | √ | √ | √ | √ | √ |
| Интерфейс | ||||||||
| S1. Ортогональная персистентность | √ | * | * | * | × | × | * | × |
| S2. Явное выполнение запросов | × | × | √ | √ | √ | √ | √ | √ |
| Оптимизация | ||||||||
| P1. Явные индексы | * – | √ × | – | – | – | – | – | – |
| P2. Пересылка критериев | × – | × – | √ × | √ × | √ × | √ √ | √ √ | √ √ |
| P3. Навигационное упреждающее чтение | × – | × – | * √ | √ * | √ × | √ √ | × – | * * |
| P4. Многоуровневая итерация | × – | × – | × – | * × | × – | × – | × – | * √ |
| P5. Манипулирование массивными данными | × – | × – | × – | × – | √ × | √ √ | × – | × – |
| Повторное использование явных запросов | ||||||||
| R1. Параметры запросов | – | – | √ × | √ × | √ × | √ √ | √ √ | √ √ |
| R2. Динамические запросы | – | – | √ × | √ × | √ × | × – | √ √ | √ √ |
| R3. Модульные запросы | – | – | √ × | √ × | √ × | × – | √ √ | √ √ |
| Параллелизм | ||||||||
| C1. Транзакции | × | √ | √ | √ | √ | √ | √ | √ |
√ √ = Свойство поддерживается и статически типизировано
√ × = Свойство поддерживается, но не является статически типизированным
× – = Свойство не поддерживается
√ = Свойство поддерживается
* = Частично поддерживается
× = Не поддерживается
– = Не применимо