JPA / EclipseLink - Расчетный столбец - PullRequest
3 голосов
/ 02 октября 2010

Я пытаюсь выучить JPA.Я создал простой класс сущностей.У этого объекта есть 3 столбца: ID, NAME, NUMBER_A.Работает нормально: я могу сохранять, обновлять и удалять без проблем.

Я пытаюсь создать вычисляемый / вычисляемый столбец.Я хочу получить NUMBER_A, использовать его для вычисления нового значения и установить вычисляемый столбец (скажем, CALC_COLUMN).

Этот вычисленный столбец не будет сохранен.Это необходимо только во время выполнения.

Я пытался создать простой двойной объект, и он получал и устанавливал, но когда я запускаю приложение, он выдает ошибку, сообщающую, что столбец CALC_COLUMN не существует, потому что JPA / EclipseLink являетсяпытаясь использовать его в качестве действительного столбца базы данных (столбца CALC_COLUMN либо нет ни в одной таблице в списке FROM ...).

Итак, возможно ли это сделать?

ТИА, Боб

1 Ответ

2 голосов
/ 02 октября 2010

Я пытаюсь создать вычисляемый / вычисляемый столбец.

JPA не предоставляет стандартной поддержки для этого.У некоторых провайдеров есть определенные расширения, такие как @Formula Hibernate, но EclipseLink не имеет прямого эквивалента (хотя он предлагает альтернативы, см. Связанный ответ).

Этот рассчитанный столбец не будет сохранен.Это необходимо только во время выполнения.

Тогда почему вы говорите о столбце для него?:)

Я пытался создать простой двойной объект, и он получал и устанавливал, но когда я запускаю приложение, он выдает ошибку, сообщающую, что столбец CALC_COLUMN не существует, потому что JPA / EclipseLink пытаетсяиспользовать его в качестве допустимого столбца базы данных (столбца CALC_COLUMN либо нет ни в одной таблице в списке FROM ...).

Из вашего описания я не уверен, что вам нужно что-то ещепричудливее, чем дополнительный получатель (без какого-либо поля), который вернул бы вычисленное значение.Сделайте это @Transient, если требуется.Но, возможно, это был просто пример.В этом случае проверьте указанную ссылку (и Запрос на улучшение ).

...