Пустой результат для собственного SQL-запроса в Hibernate - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь разработать простой метод для выполнения запросов sql в моем приложении, чтобы я мог использовать собственный sql для определенных вещей.У меня есть такой метод:

Session session = getReportCsvMgr().getHibernateSession();
session.beginTransaction();
String sql = String.format("select USER_ID from Users where accountid = 'testaaa'");
Object o = session.createSQLQuery(sql).list();
System.out.println(o.toString());

session.close();

Я не получаю никаких ошибок, но каким-то образом объект o пуст и sysout просто печатает [].Я отладил и сессия работает.Я проверил изменение имени таблицы и действительно сказал, что «таблица не существует».Я также попытался с и обновить заявление, без ошибок, но это ничего не делает.Кто-нибудь может сказать мне, что мне нужно сделать?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Либо используйте .uniqueResult() вместо .list(), если он возвращает только одну строку, либо измените тип возвращаемого значения на List<Object[]>

0 голосов
/ 23 мая 2018

Измените строку

Object o = session.createSQLQuery(sql).list();

на:

List<Integer> o = session.createSQLQuery(sql).list();

, если USER_ID является целым числом или на:

List<String> o = session.createSQLQuery(sql).list();

, если USER_ID - строка.

Кроме того, в запросе вы не передали параметры, поэтому вы можете изменить:

String sql = String.format("select USER_ID from Users where accountid = 'testaaa'");

на простой:

String sql = "select USER_ID from Users where accountid = 'testaaa'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...