OpenJPA Slice может быть одним из вариантов для приложений JPA в среде изолированной базы данных.
OpenJPA Slice доступен начиная с версии 1.2, а также поставляется с Websphere 7.0 и более поздними версиями.Основной контракт использования Slice заключается в том, чтобы сохранить точно такой же код приложения на основе JPA для работы с горизонтально разделенными фрагментами базы данных без какого-либо влияния на схему базы данных.Осколки базы данных могут быть от разных поставщиков.
Срез следует структуре, основанной на политике, которая позволяет пользовательскому приложению контролировать, какой осколок / срез сохранит новые экземпляры, как будут нацелены запросы для поднабора срезов и т. Д.
Основным ограничением (которое типично для любой изолированной среды) является то, что модель постоянного домена должна придерживаться схемы, ограниченной деревом.По сути, учитывая экземпляр x, хранящийся в сегменте A, постоянное замыкание x, то есть набор экземпляров, прямо или косвенно достижимых из x, также должно храниться в том же сегменте A. Slice вычисляет замыкание автоматически при сохранении x.
Если приложение может жить с таким ограничением, Slice может быть подходящим вариантом.
Время от времени определенные экземпляры могут быть общими для замыканий, например, код страны или код валюты.В Slice есть возможность репликации таких экземпляров, подобных «основным данным», на несколько сегментов.
Поддерживаются агрегатные операции (MAX, MIN, SUM), которые являются абелевыми / коммутативными для сегментирования.Неабелева совокупность, такая как AVG, не поддерживается.Сортировка или Top-N запросов также поддерживаются.
Дополнительную информацию о Slice можно найти по следующим ссылкам
[1] Руководство пользователя OpenJPA: http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_slice
[2] Статья IBM Developerworks: http://www.ibm.com/developerworks/java/library/os-openjpa/?ca=drs-