У меня есть таблица «t» со столбцами a, b, name, id и «add» - это пользовательская функция в базе данных, которая принимает два целочисленных параметра и возвращает целое число «c».
Ниже приведен мой запрос на выборку.
SELECT a,b, add(a,b) as c FROM myTable t where a = 1;
Класс MyPojo с тремя свойствами a, b, c.
public MyPojo(){
private int a;
private int b;
private int c;
//getter and setter.....
constructor(int a,int b, int c){
//initialization
}
}
MyEntity с 4 свойствами a, b , name, id
public MyEntity(){
private int a;
private int b;
private String name;
private String id;
//getter and setter.....
constructor(int a,int b, String name, String id){
//initialization
}
}
функция, реплицирующая вышеупомянутый запрос выбора с использованием запроса критериев
private List<MyClass> getListMyClass(int a){
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<MyPojo > query = builder.createQuery(MyPojo .class);
Root<MyEntity > config = query.from(MyEntity .class);
List<MyPojo > resultList = null;
Predicate predicate = builder.equal(config.get("a"), a);
**query.multiselect(config.get("a"),config.get("b"),builder.function("add",Integer.class,config.get("a"),config.get("b"))).where(predicate);**
resultList = sessionFactory.getCurrentSession().createQuery(query).getResultList();
return resultList;
}
Я хочу повторить тот же запрос выбора с использованием запроса критериев, но не могу выбрать "c ", которая является возвращением функции add (), поскольку она не является столбцом в таблице" t "