Встроенные функции Hibernate и Oracle

У меня есть объект, который сопоставляется с внешней таблицей Oracle, которая является одним из основных источников данных моего приложения. Эта сущность моделируется с использованием спящего режима.

Таблица оракула теперь имеет сложную функцию, которая вычисляет некоторые специальные значения. Мне нужно как-то вызвать эту функцию - почти как еще один метод доступа к сущности.

Что бы вы предложили, как лучший способ включить этот вызов функции, чтобы я мог поддерживать относительно нормальный доступ к объектам в спящем режиме?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
1 568
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете вызвать функцию напрямую, используя хранимую процедуру с HQL. Если, конечно, вам не придется вызывать эту функцию для каждой записи в таблице. Но если вы делаете это в одном и том же сеансе гибернации, если вы не выполняете много вызовов одновременно, это должно работать без значительного снижения производительности.

Мне нужно вызывать его для каждой записи в таблице. Этот объект обрабатывается от начала до конца, поэтому было бы неплохо иметь способ поместить вызов функции как часть естественного чтения. Sql выглядит примерно так: SELECT FIELD1, FIELD2, FUNCTION (FIELD1) from DataTable

LenW 28.11.2008 09:38
Ответ принят как подходящий

У меня есть решение, использующее аннотацию @Formula

Чтобы сохранить развязку с вашей базой данных, предоставляемую Hibernate, я бы положился на Oracle, чтобы вызвать эту функцию, используя триггеры или представления.

Основное преимущество этого подхода заключается в том, что он полностью безупречен для вашей реализации Hibernate.

как бы вы это сделали с функцией, требующей параметров?

LenW 03.12.2008 17:44

Другие вопросы по теме