Выберите один столбец из строки в спящем режиме - PullRequest
4 голосов
/ 11 февраля 2011

Я пытаюсь выполнить простой запрос, чтобы получить уникальный результат в режиме гибернации. Вот мой код.

public String getName(Integer id) {
     Session session = getSessionFactory().openSession();
     String name = (String)session.createSQLQuery("SELECT name FROM users WHERE user_id = :userId").setParameter("userId", id).uniqueResult();
     return name;
}

Возвращаемое имя сохраняется в виде текста HTML, включающего язык синтаксиса html.Я думаю, что это является причиной проблемы, но это не имеет смысла, я просто хочу вернуть ее в виде строки.

Это происходит только с этим одним именем поля, я могу получить все остальные поля в строке, ноэтот дает мне ошибку.

Я получаю исключение.Исключение, которое я получаю:

Нет сопоставления диалектов для типа JDBC: -1;Вложенным исключением является org.hibernate.HibernateException

Как выполнить запрос для определенного столбца в строке в hibernate?

Ответы [ 2 ]

2 голосов
/ 11 февраля 2011

Я нашел решение, очевидно, в Java нет типа, который можно сопоставить с текстовыми полями, поэтому вы должны добавить скалярное решение ниже: Спасибо за помощь

session.createSQLQuery("SELECT name FROM users WHERE user_id = :userId").addScalar("name", Hibernate.TEXT).setParameter("userId", id).uniqueResult();
0 голосов
/ 11 февраля 2011

Тогда это должно сработать. Используйте аннотацию Type hibernate.

Добавить

@Type(type="text")

К вашему отображению.

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