Как я могу использовать приведение типов внутри оператора JPQL?

У меня есть два столбца Integerв базе данных (derby и db2). Мне нужно разделить их друг с другом внутри JPQL.

Оба столбца типа Integerвозвращают ноль, если остаток представляет собой десятичное число, например, 0,25становится 0и т. д., и это понятно, поскольку тип — int.

В SQLя мог бы, например,

выбрать CAST (столбец 1 как десятичный (6,2))/CAST (столбец 2 как десятичный (6,2)) из Sometable;

но что эквивалентно JPQL.

Одним из возможных вариантов (я еще не пробовал) может быть метод @Transientв сущности, возвращающий тип Decimal и выполняющий это вычисление там, и передающий его в JPQLно я предпочел бы, чтобы SQLвыполнял эту работу.


Mysql не требует приведения типов на уровне базы данных. Таким образом, поведение для разных СУБД отличается, и это нормально. Но что должен делать JPQL без необходимости использовать собственный запрос, чтобы знать, что для этой операции требуется приведение к десятичной системе.

Добавление диалекта также не помогло.

Обратите внимание, что это JPA1

6
задан Shahzeb 14 May 2012 в 00:25
поделиться