JPA или Hibernates с разделами таблицы Oracle? - PullRequest
4 голосов
/ 13 сентября 2010

Мне нужно использовать платформу Entity с моим приложением, и я использовал разделы таблиц в базе данных Oracle.С помощью простого JDBC я могу выбирать данные из определенного раздела.Но я не знаю, смогу ли я сделать то же самое с hibernate или Eclipse link (JPA).Если кто-то знает, как это сделать, пожалуйста, дайте мне знать.

обычно оператор выбора в JDBC - SQL:

select * from TABLE_NAME partiton(PARTITON_NAME) where FIELD_NAME='PARAMETER_VALUE';

Как мне сделать то же самое с Hibernates или JPA?

Пожалуйста, поделитесь хотя бы ссылкой для изученияисточники.

Спасибо !!!

Ответы [ 3 ]

3 голосов
/ 13 сентября 2010

JPA или любая другая платформа ORM не поддерживает таблицы разделов Oracle изначально (по крайней мере, насколько мне известно).

Хотя существуют различные возможные решения, в зависимости от характера вашей проблемы:

  • Рефакторинг ваших классов таким образом, чтобы данные, которые необходимо обрабатывать по-разному в реальной жизни, принадлежали к отдельному классу.Иногда это называется вертикальным разделением (разделы получаются не по строкам, а по столбцам).
  • Используйте таблицы разделов Oracle внизу и используйте собственные запросы SQL или хранимые процедуры из JPA.Это просто возможное решение (я не пытался это сделать).
  • Использовать Осколки гибернации .Хотя типичный сценарий использования для Hibernate Shards не предназначен для одной базы данных, он предоставляет единое представление распределенных баз данных разработчику приложения.

Related :

  1. Производительность JPA, не игнорируйте базу данных
2 голосов
/ 09 марта 2012

EclipseLink поддерживает разделение или разделение с различными параметрами.

Вы можете найти больше об этом и примеры здесь:

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Data_Partitioning

1 голос
/ 13 сентября 2010

Разделение таблиц - это организация данных на физическом уровне.Одним словом, разделение - это индекс бедняков.Как и позже, он должен быть полностью прозрачным для пользователя.Запрос SQL может ссылаться на всю таблицу, но не на раздел.Затем это задача оптимизатора запросов, чтобы решить, может ли он использовать определенный раздел или индекс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...