Как я могу запросить Postgres, чтобы JSON вернулся в Java? - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь вернуть результат запроса в виде строки 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: Изменил код на самую обновленную форму

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...