怎样在hibernate mysql方言的HQL语句中使用mysql 的自定义函数

2013年3月 总版技术专家分月排行榜第二
2014年2月 Java大版内专家分月排行榜第一2013年8月 Java大版内专家分月排行榜第一2013年5月 Java大版内专家分月排行榜第一2013年4月 Java大版内专家分月排行榜第一2013年3月 Java大版内专家分月排行榜第一2013年2月 Java大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。本帖子已过去太久远了,不再提供回复功能。&FIND_IN_SET(str,strlist)
假如字符串str 在由N 子链组成的字符串列表strlist 中, 则返回值的范围在 1 到 N 之间 。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则&& FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或strlist 为空字符串,则返回值为 0。如任意一个参数为NULL,则返回值为 NULL。
&&& 在jdbc的SQL中可以不用写比较符,比如:
&&& select * from t_user where find_in_set('zs',username) ;
&&& 当然也可以这样用:
&&& select * from t_user where find_in_set('zs',username)&0
&&& 而在hibernate的HQL语句中,必须这样用:
&&& from User u where find_in_set('zs',u.username)&0 ;
&&& 即‘&0’必须带上,否则会报错。
本文已收录于以下专栏:
相关文章推荐
Map par = new HashMap();
par.put(&buying_patterns&, buying_patterns);
                Hibernate &#16...
Hibernate虽然使用的是HQL语句,有时难免会觉得不够智能,其实没有发现Hibernate设计者的全面性;
比如in关键字,正确的使用方法是://获取id集合
List menuIds =
博客分类: 
框架HibernateDAO 
最近遇到两次在hql的in中传递参数的问题,最初让我纠结万千。
Hibernate的HQL中in参数设置
   平时经常用Hibernate,由于习惯表间不建立关联,所以HQL查询时候经常要用in语句。
    我最常用的情...
问题:怎样在hibernate中使用mysql的函数?
1.hibernate支持原生态的sql语句查询,使用session.createSQLQuery()创建查询对象;
2.怎样在hq...
首先,看一下数据库表数据
复制代码代码如下:
mysql& select *
+----+-------------+
| id | name...
1、函数简介
FIND_IN_SET(str,strlist)
假如字符串str 在由N 子链组成的字符串列表strlist 中, 则返回值的范围在 1 到
N 之间 。一个字符串列表就是一个由一些被...
今天在使用find_in_set()函数发现一个问题,请看以下代码:select FIND_IN_SET(1, ' 1, 2 ,3')//0
select FIND_IN_SET...
在使用in函数的时候,发现查询的数据少了两条,查过资料才找到原因,跟大家分享一下!
原来以为mysql可以进行这样的查询
1】t_bdp_indices_user_info的表结构:
...
mysql 中 find_in_set() 方法:有时候我们在设计数据库时有以下情况,如:在视频表中有个字段week, 他存储的是视频在周几播放,如某视频只在周1,4,6播放,那么week字段对应的值...
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Hibernate的HQL支持数据库convert函数
Hibernate的HQL已经支持大多数数据库函数,肯定不能包括所有, 幸运的是Hibernate已经对此做了相应的方案解决,
也就是Dialect中注册数据库函数.具体做法如下,我们以Mysql5为例&
  Mysql 的convert函数,现现在数据库的字符集是utf-8,如果想实现中文排序,就需要用convert(filedName
using gbk) 实现,但现有的hibernate的hql不能支持此函数,
我们可以现在Dialect注册一个函数,一样不赞成直接修改Hibernate 的源码, 我们可以扩展一个类,如下代码所示
import org.hibernate.H&
org.hibernate.dialect.MySQL5D&
import org.hibernate.dialect.function.SQLFunctionTemplate
public class MySQL5LocalDialect extends MySQL5Dialect
public MySQL5LocalDialect(){
& super();&
registerFunction("convert", new
SQLFunctionTemplate(Hibernate.STRING, "convert(?1 using ?2)")
现在applicationContext.xml中或hibernate.hbm.xml中修改&
package.MySQL5LocalDialect&
name="hibernate.dialect"&
com.credit.publicmodel.util.MySQL5LocalDialect
&/property&
  现在HQL中使用convert方法,
例如: convert(fieldName, 'gbk') , "GBK"也可以是其他字符集
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 hibernate连接mysql 的文章

 

随机推荐