hibernate的like用法以及hibernate.query.factory_class的写法问题

  1. 直接写String sql = "from ClientInfo as a where a.client_name like '%"+ clientname+"%'");    
  2. Query repeatClientQuery=querysession.createQuery(sql);    
  3. 成功.但是却不能查询中文,假如clientname是客户1名字的话,那么将查不到结构,    
  4. 解决办法:1.用占位符:    
  5. Query query = session    
  6. .createQuery("select count(*)   
  7. from Privilege p where p.name like ?");    
  8. query.setString(0"%" + name + "%");//    
  9. 注意这里不能写成setString(0," '%" + name + "%' ";    
  10. 否则查不出来结果,不能加‘单引号2.修改查询编译器:

Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,    
     在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

 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

  <property name="hibernateProperties">
   <props>

。。。。

<prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop>
     。。。。。。

</props>
  </property>
  <property name="configLocation" value="classpath:hibernate.cfg.xml"/>  
 </bean>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值