Но для них отсутствует статическая
Но для них отсутствует статическая проверка, и поля именуются строками. JDO 1.0 и EJB 2.0 являются средствами объектно-реляционного отображения для Java. Они обеспечивают высокий уровень ортогональной персистентности []. Поддерживается пересылка критериев. Частично поддерживается оптимизация навигации: ее можно задать в качестве глобального свойства связи, но не для отдельных запросов.
Hibernate и TopLink – это средства объектно-реляционного отображения для Java с некоторой поддержкой ортогональной персистентности. В каждом из них имеется специальный язык для пересылки критериев. В этих языках запросов поддерживаются пересылка критериев и навигационное упреждающее чтение, хотя спецификации упреждающего чтения не вполне универсальны. Также обеспечиваются частичные решения многоуровневой итерации.
ODBC и JDBC – это стандартные интерфейсы уровня вызова. Они обеспечивают полный набор функциональных возможностей, но не поддерживают статическую типизацию. При использовании этих интерфейсов оптимизация многоуровневой итерации является затруднительной. SQLJ [] – это разновидность встраиваемого SQL для Java. Обеспечивается высокий уровень статической типизации, но не поддерживаются динамические или модульные запросы.
Safe/Native Queries (S/NQ) [] и Linq [] – это два новых проекта. Подобно JDO и Hibernate, Safe Queries строится поверх средства объектно-реляционного отображения, но в нем обеспечивается статическая типизация запросов, которые представляются как стандартные классы Java. Linq – это расширение Linq, позволяющее определять статически типизированные запросы над реляционными и другими источниками данных. В отличие от встраиваемого SQL в этих подходах поддерживаются динамические запросы. В Linq поддерживается разновидность многоуровневой итерации; поскольку для возврата всех данных в нем используется единственное соединение, значения из объемлющих итераций повторяются для каждого элемента, возвращаемого из вложенной итерации. В Linq также допускается некоторая разновидность упреждающего чтения, хотя возвращаемыми объектами являются записи, а не экземпляры отображаемых классов.Заметим, что наша оценка Linq носит предварительный характер.
Содержание Назад Вперед