hibernate.query.factory_class 设置查询翻译器

引用:

Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,不过,Hibernate2.1的查询翻译器也依然存在。在Hibernate的配置文件 中,hibernate.query.factory_class属性用来选择查询翻译器。例如:
(1)选择Hibernate3.0的查询翻译 器:
hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory
(2)选择Hibernate2.1的查询翻 译器
hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory
提 示:ANTLR是用纯Java语言编写出来的一个编译工具,它可生成Java语言或者是C++的词法和语法分析器,并可产生语法分析树并对该树进行遍历。 ANTLR由于是纯Java的,因此可以安装在任意平台上,但是需要JDK的支持。

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
...
//<hibernate 2.1>的配置是这样的
<prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>
//可以hsql="from BS085RYKS bs085 left join fetch bs085.bs086ryxx bs086 where bs086.xm086 like '%小王%'";
//Query query=session.createQuery(hsql);可以解决查询中文的作用带是不能 hsql.append( "update BS085RYKS set ID_KB085 = 13 where ID
// in(13,14,29)");
// getHibernateTemplate().bulkUpdate(strSql);

//hibernate 3.0>的配置是这样的
<prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop>
//但是getHibernateTemplate().bulkUpdate(strSql);但是不能解查询中文


</props>
< /property>

解决 getHibernateTemplate().bulkUpdate("")功能

<property name="hibernate.query.factory_class">
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
< /property>

猜你喜欢

转载自du-bo.iteye.com/blog/1826204
今日推荐