Я пытаюсь вернуть результат запроса в виде строки JSON в java.
Я попытался использовать HQL и настроить собственный запрос SQL, но, похоже, мне необходимо использовать тип UUID, который мне не нужен, поскольку ни одно из полей не является JSON. Я запросил базу данных с похожим запросом и получил результаты, совместимые с тем, что мне нужно
// the three lists in input are always the same length (controlled elsewhere)
public static String directQuery(List<String> vars, List<String> criteri, List<String> param){
Session session = HibernateUtility.getSessionFactory().openSession();
session.beginTransaction();
String query="";
String json="";
if(!GenericUtil.isNullOrBlank(vars)&&!GenericUtil.isNullOrBlank(criteri)&&!GenericUtil.isNullOrBlank(param)){
query="SELECT CAST(json_agg(results) as TEXT) FROM public.results WHERE ";
for(int i=0;i<vars.size();i++){
query=query+""+vars.get(i)+" "+criteri.get(i)+" "+param.get(i)+" AND ";
}
query=query.substring(0, query.length()-5);
}
json= (String) session.createSQLQuery(query).uniqueResult();
session.getTransaction().commit();
session.close();
return json;
}
Я ожидаю JSONArray с многочисленными элементами, но мне еще предстоит увидеть какие-либо выходные данные, но я получаю эту ошибку
org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111
Как это можно решить? Спасибо всем за потраченное время.
Edit:
Изменил код на самую обновленную форму