自定义 Hibernate 的 HQL 函数

有时候我们使用一些数据库特有的SQL语法跟HQL有冲突怎么办,看看这个

标签:
HQL Dialect MySQL Hibernate

[1].[代码] MySQLExtendDialect.java 跳至 [1]

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

/**

 *
MySQLExtendDialect.java of new_dlog_cn

 *
作者: Winter Lau

 *
时间: 2009-4-13

 *
项目主页: <a href="http://www.dlog4j.com/">http://www.dlog4j.com</a>

 */

package

com.dlog4j.tester;

import

org.hibernate.Hibernate;

import

org.hibernate.dialect.*;

import

org.hibernate.dialect.function.SQLFunctionTemplate;

/**

 *
MySQL扩展方言

 *
@author Winter Lau

 */

public

class

MySQLExtendDialect
extends

MySQLDialect {

    public

MySQLExtendDialect(){

        super();

        registerFunction("convert_gbk",

                 new

SQLFunctionTemplate(Hibernate.STRING,
"convert(?1
using gbk)"
)
);

    }

    

}

时间: 2024-08-10 19:09:17

自定义 Hibernate 的 HQL 函数的相关文章

Hibernate中HQL函数汇总及其说明

Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装.以下就是HQL的一些常用函数,有了这些函数,我们就可以拥有更多的灵活性,比如HQL如何取余,HQL如何返回集合的最值,HQL字符串处理,

Hibernate中HQL函数汇总及获取当前时间进行比较举例

在很多时候,我们负责的项目中,在数据访问层(DAO层)通常我们会使用sql语句或者hql语句,而在我们使用hql语句拼接时有时会报错,通常的原因是:我们使用了标准的sql语句,开启的确是hibernate的面向对象的语句 sessionFactory.getCurrentSession().createQuery(sql); 我们应改成 sessionFactory.getCurrentSession().createSQL(sql);就可以了. 但有时项目要求必须要使用hql,比如说将相应的接

Hibernate之HQL介绍

Hibernate中提供了多种检索对象的方式,主要包括以下种类: 导航对象图检索方式:根据已经加载的对象导航到其他对象 OID检索方式:根据对象的OID来检索对象 HQL检索方式:使用面向对象的HQL查询语言 QBC检索方式:使用QBC(Query By Criteria)API来检索对象.这种API封装了基于字符串形式的查询语句,提供了更加面向对象的查询接口 本地SQL检索方式:使用本地数据库的SQL查询语句 本文主要介绍第三种方式,也就是HQL检索对象. HQL(Hibernate Quer

【HQL】hibernate查询语言hql

hibernate查询语言hql 在hql中关键字不区分大小写,通常小写,类的名称和属性名称必须区分大小写 1.简单属性查询[重要] * 单一属性查询,返会属性结果集列表,元素类型和实体类中相应的类型一致 * 多个属性查询,多个属性查询返会对象数组,对象数组的长度取决于属性的个数 对象数组中元素的类型取决于属性在实体类中的类型 * 如果认为返会数组不够对象化,可以使用hql动态实例化Student对象 参见:SimplePropertyQueryTest.java 2.实体对象查询[重要] *

Hibernate六 HQL查询

HQL查询一 介绍1.HQL:Hibernate Query Language,是一种完全面向对象的查询语言.使用Hibernate有多重查询方式可供选择:hibernate的HQL查询,也可以使用条件查询,甚至使用原生的SQL查询语句.Hibernate还提供了一种数据过滤功能,这些都用于删选目标数据.2.查询步骤:(1)获取Hibernate Session对象(2)编写HQL语句(3)以HQL语句为参数,调用Session的createQuery()方法创建查询对象(4)如果HQL语句包含

Hibernate学习---第九节:Hibernate之hql

一.Hql 入门 1.实体类: package learn.hibernate.bean; import java.util.Date; import java.util.HashSet; import java.util.Set; /** * 持久化类设计 * 注意: * 持久化类通常建议要有一个持久化标识符(ID) * 持久化标识符通常建议使用封装类(例如:Integer 因为基本类型存在默认值) * 持久化类通常建议手动添加一个无参构造函数 (因为有些操作是通过放射机制进行的) * 属性通

Java_Web三大框架之Hibernate+jsp+HQL分页查询

分页查询无处不在.使用Hibernate+jsp+HQL进行分页查询. 第一步:编写房屋实体类和House.hbm.xml映射. /* * 房屋实体类 */ public class House { private int id;//房屋id private HouseType type;//房屋类型 private Users2 user;//用户 private Street street;//街道 private String title;//标题 private String descr

hibernate的hql查询语句

hibernate的hql查询语句 在这里通过定义了三个类,Special.Classroom.Student来做测试,Special与Classroom是一对多,Classroom与Student是一对多的关系,这里仅仅贴出这三个bean的属性代码: Special类: public class Special { private int id; private String name; private String type; private Set<Classroom> rooms; .

自定义文件夹处理函数(Python)

#encoding: utf-8 #author: walker #date: 2017-06-15 #summary: 自定义文件夹处理函数,适用于python3.5+ import os import shutil import win32com.client #清空目录 def ClearDir(dir):     print('ClearDir ' + dir + '...')           for entry in os.scandir(dir):         if entr