HQL к преобразователю SQL

Это - хороший способ произвести часть на стороне Вашей инфраструктуры. Вы не должны волноваться о потерянных паролях и т.д., кто-то еще делает это для Вас.

я не уверен, что использовал бы его исключительно, все же. Я не привык OpenID достаточно для совершенно доверительного это, и знак обрабатывает потребности, которые будут оптимизированы до>, у 90% пользователей есть OpenID.

5
задан mjv 20 November 2009 в 07:00
поделиться

3 ответа

Поскольку перевод HQL зависит от ваших сопоставлений, а также от поведения во время выполнения, я думаю, маловероятно, что есть способ сделать это статически.

Вы можете запустить HQL для реальной базы данных и записать сгенерированный SQL либо с помощью профилировщика для ваших конкретных rdbms, либо NHProf.

2
ответ дан 15 December 2019 в 06:29
поделиться

Я не знаком со всеми параметрами, но кажется, что это работает:

ISessionFactory sessionFactory = ...
var sf = (SessionFactoryImpl) sessionFactory;
var hql = "from Person";
var qt = sf.Settings.QueryTranslatorFactory.CreateQueryTranslator("", hql, new Dictionary<string, IFilter>(), (ISessionFactoryImplementor) sessionFactory);
qt.Compile(new Dictionary<string, string>(), true);
var sql = qt.SQLString;
Console.WriteLine(sql);
0
ответ дан 15 December 2019 в 06:29
поделиться

Я не уверен, какое значение имеет автоматическое преобразование HQL в SQL динамически ...

Чего именно вы пытаетесь достичь этим?

Самый простой способ - запустить свой код во время работы SQL Server Profiler, чтобы увидеть сгенерированный SQL. Но лучшим подходом было бы загрузить nhProf (www.nhprof.com) и использовать его со своим кодом. Вы сможете точно увидеть, что ваш код выводит в SQL, он будет форматировать и закодировать его цветом, а также дать вам советы о том, как улучшить использование nhibernate.

0
ответ дан 15 December 2019 в 06:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: