Есть ли способ использовать hql без классов? - PullRequest
1 голос
/ 15 июля 2011

Сценарий таков: в моей системе пользователь сможет определять запрос к базе данных, используя какие-то метаданные.

Пример: пользователь определит некоторые параметры, такие как:

 -DatabaseType: Oracle 11g
 -ConnectionProperties: (user, password, server, etc)
 -TableName: TAB1
 -Columns: COL1, COL2
 -Filters: COL3=2 ; COL2=5

Таким образом, я не знаю ранее, что будет возвращено, и поэтому у меня нет класса, который соответствует resultSet, возвращенному этим запросом.

Тем не менее проблема заключается в следующем: могу ли я создать HQL-запрос, используя эти «метаданные», даже без класса, соответствующего результату (например, TAB1 с COL1 и COL2)?

FAQ: - «Почему вы хотите использовать HQL, а не SQL» Ответ: быть независимым от базы данных.

Спасибо, и, пожалуйста, скажите мне, если я не достаточно ясно:)

Ответы [ 2 ]

1 голос
/ 15 июля 2011

HQL работает с объектами, поэтому no-hibernate пожалуется, что не находит объект, на который вы ссылаетесь.

0 голосов
/ 15 июля 2011

Если ваша цель - независимость от базы данных, вы можете пойти довольно далеко вместе с escape-последовательностями JDBC. См. http://download.oracle.com/docs/cd/E13222_01/wls/docs91/jdbc_drivers/sqlescape.html для обзора.

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