Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate native query плучить имена столбцов, Возможно ли или нет? 
V
    Опции темы
Fedrus
Дата 24.10.2008, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Добрый день,
можно ли при выполнении NativeQuery (например - .createNativeQuery("SELECT * FROM CUSER"))
как нибудь получить имена столбцов? Использовать не native не могу.
--------------------
Если вы идете через ад, идите не останавливаясь.
PM MAIL   Вверх
necromancer
Дата 24.10.2008, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



читаем hibernate api - Query:
 String[]    getNamedParameters()
          Return the names of all named parameters of the query.
 String    getQueryString()
          Get the query string.
 String[]    getReturnAliases()
          Return the HQL select clause aliases (if any)
 Type[]    getReturnTypes()
          Return the Hibernate types of the query result set.

не факт, но может быть искомая информация сокрыта где либо тут?
крайний случай парсить результат: getQueryString() например с помощью Scanner

Это сообщение отредактировал(а) necromancer - 24.10.2008, 11:17


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
Fedrus
Дата 24.10.2008, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



В перечисленных методах нет нужной информации. (похоже ты меня не совсем понял)
getNamedParameters() - вернул пустой массив
а getReturnAliases() и getReturnTypes()  выбрасывают ошибки(да и вообще мне кажется сначала должны быть алиасы и возврощаемые типы в запросе чтоб эти методы отработали)

Не совсем понял что значит парсить результат getQueryString() ??
результат то - "SELECT * FROM CUSER" ?
--------------------
Если вы идете через ад, идите не останавливаясь.
PM MAIL   Вверх
necromancer
Дата 24.10.2008, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



в таком случае может проще не использовать Hibernate?  =)
а использовать нативный ResultSet & PreparedStatement.
Если переживаешь о конекшенах то их можно получить их Hibernate и туда же вернуть.

PS еще нашел решение =) дергать функцию которая вернет списком параметры перед первым запросом =)


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
Fedrus
Дата 24.10.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Спасибо пожалуй так и сделаю обойдусь без Hibernate.
--------------------
Если вы идете через ад, идите не останавливаясь.
PM MAIL   Вверх
Lesli
Дата 28.10.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.10.2008

Репутация: нет
Всего: нет



Добрый день, я начинающий программист и у меня похожая проблема))
Сделал так 
Код

ResultSet rs = null;
        Connection connection = null;
        try {

            ConnectionProvider connProvider = ConnectionProviderFactory
                    .newConnectionProvider();
            connection = connProvider.getConnection();

            Statement stmt = connection.createStatement();
            rs = stmt.executeQuery(sql);

        } catch (HibernateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return rs;



Только при получении ConnectionProviderа всплыл WARN  : No connection properties specified - the user must supply JDBC connections
а потом при получении connection ошибка:
java.lang.UnsupportedOperationException: The user must supply a JDBC connection

Я так понял что нужно при получении ConnectionProviderа подсунуть Properties, ток не знаю как их получить если надо то могу выложить полный стектрайс ошибки)
Помогите пожалуйста? От куда получить Properties?
PM MAIL   Вверх
Fedrus
Дата 30.10.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



У меня так..
Код

public ResultSet sqlSearch(String sql) {
        ResultSet rs = null;
        Connection connection = null;
        try {
            Session s = (Session) getJpaTemplate().getEntityManagerFactory()
                    .createEntityManager().getDelegate();
            connection = ((SessionFactoryImplementor) s.getSessionFactory())
                    .getConnectionProvider().getConnection();
            Statement stmt = connection
                    .createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                            ResultSet.CONCUR_READ_ONLY);
            rs = stmt.executeQuery(sql);
        } catch (HibernateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return rs;
    }


Это сообщение отредактировал(а) Fedrus - 30.10.2008, 14:59
--------------------
Если вы идете через ад, идите не останавливаясь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.