【发布时间】:2011-09-26 13:20:19
【问题描述】:
我在休眠中有一个查询,我认为这是因为驱动程序和 MsSql 中的 VARCHAR 和 NVARCHAR 存在差异,这里讨论了 Getting Hibernate and SQL Server to play nice with VARCHAR and NVARCHAR。我知道这个问题与 Hibernate 无关,但我对 hibernate 处理下面代码的方式感到困惑。
当我们运行下面的查询时(使用 set 参数并且不使用它),在具有 VARCHAR 列类型的数据库上,列 'code' ,我们发现在 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();
请告诉我这将如何产生影响。
【问题讨论】:
标签: hibernate