Если вы используете JPA 2.1, вы можете использовать функцию вызова функции. для этого вам следует переместить запрос формулы в функцию базы данных и вызвать эту функцию в предложении select. Например, предположим, что calculate
- это функция базы данных, которая принимает два числовых параметра.
тогда вы можете вызвать эту функцию следующим образом:
Object r = em.createQuery("SELECT function('calculate', a.id, 1) FROM Author a WHERE a.id = 1").getSingleResult();
, и вы должны зарегистрировать свою пользовательскую функцию следующим образом:
public class MyPostgreSQL9Dialect extends PostgreSQL94Dialect {
public MyPostgreSQL9Dialect() {
super();
registerFunction("calculate", new StandardSQLFunction("calculate"));
}
}
для получения дополнительной информации проверьте это .