标签:
it |
原本我的写法:Query
repeatClientQuery=querysession.createQuery("from ClientInfo as a
"
查询无结果.
LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如
McBadden)。
LIKE '%inger' 将搜索以字母 inger
结尾的所有字符串(如 Ringer、Stringer)。
LIKE '%en%' 将搜索在任何位置包含字母 en
的所有字符串(如 Bennet、Green、McBadden)。
LIKE '_heryl' 将搜索以字母 heryl
结尾的所有六个字母的名称(如
Cheryl、Sheryl)。
LIKE '[CK]ars[eo]n'
将搜索下列字符串:Carsen、Karsen、Carson 和
Karson(如 Carson)。
LIKE '[M-Z]inger' 将搜索以字符串 inger
结尾、以从M到Z的任何单个字母开头的所有名称如
。
LIKE 'M[^c]%' 将搜索以字母 M
开头,并且第二个字母不是 c 的所有名称(如
MacFeather)。
直接写
String sql = "from ClientInfo as a where a.client_name like '%"+
clientname+"%'");
Query repeatClientQuery=querysession.createQuery(sql);
成功.
但是却不能查询中文,假如clientname是客户1名字的话,那么将查不到结构,解决办法:
1.用占位符:
2.修改查询编译器:
Hibernate3.0
采用新的基于ANTLR的HQL/SQL查询翻译器,在Hibernate的配置文件中,hibernate.query.factory_class属性用来选择查询翻译器。
(1)选择Hibernate3.0的查询翻译器:
hibernate.query.factory_class=
org.hibernate.hql.ast.ASTQueryTranslatorFactor
(2)选择Hibernate2.1的查询翻译器
hibernate.query.factory_class=
org.hibernate.hql.classic.ClassicQueryTranslatorFa
为了使用3.0的批量更新和删除功能,只能选择(1)否则不能解释批量更新的语句,当使用的时候出现了不支持条件输入中文的情况。选择(2)可以支持输入中文,但没法解释批量更新语句了。