У меня есть запрос в спящем режиме, который, по моему мнению, вызван несоответствиями VARCHAR и NVARCHAR в драйвере и MsSql, которые обсуждались здесь Получение Hibernate и SQL Server для приятной игры с VARCHAR и NVARCHAR . Я понимаю, что эта проблема не связана с Hibernate, но меня смущает то, как hibernate работает с кодом ниже.
Когда мы запустили Запросы ниже (используя параметр set и без него) на БД с типом столбца VARCHAR для столбца «код», мы обнаружили, что добавление строки в HQL работает намного быстрее, чем setParameter (или Criteria Query, который должен был быть быстрее, чем HQL).
Query createQuery = session.createQuery("from abc where code='"+substring+"'");
/*Query createQuery = session.createQuery("from abc where code=:substring");
createQuery.setParameter("substring","Test");*/
return createQuery.list();
Пожалуйста, дайте мне знать, как это повлияет.