|
Модераторы: LSD, AntonSaburov |
|
isabsent |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 64 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
В HQL есть возможность запросить выборку по имени класса from Cat cat where cat.class = DomesticCat. Мне нужно динамически сформировать указанного типа запрос с параметрами, в котором есть один параметр типа .class, а количество остальных параметров заранее не известно. На сколько я понимаю, использовать NamedQuery с параметрами в этом случае нельзя, так как пустые параметры приводят к Excepton. Использовать Criteria тоже не могу - по каким-то причинам
приводит к Exception. Единсвенное, что удалось сделать - динамически сформировать SQL-строку конкатенацией (из кусочков, выбранных пользователем в процессе формирования запроса) типа
что не есть хорошо с точки зрения безопасности Куды бедному крестьянину податься? Это сообщение отредактировал(а) isabsent - 19.8.2011, 07:38 |
||||
|
|||||
tux |
|
|||
Летатель Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Направление вроде правильное, а ваша проблема с безопасностью легко решается. Вообще конкатенация параметров в запрос настоятельно не рекомендуется именно по этой причине. Но ведь можно использовать именованные параметры. Например,
Ну и так далее. В этом случае Hibernate использует PreparedStatement, подставляя параметры и проблема связанная с тем что пользователь может засабмитить куски запроса не возникает в принципе. |
|||
|
||||
isabsent |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 64 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Я понимаю что нужно использовать именованные параметры. Проблема, как я написал выше, была в
|
|||
|
||||
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |