在sessionFactory中配置hibernate.dialect属性,以mysql为例,class设置为自定义的类,
<bean id="chartSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="chartDataSource" />
<property name="mappingLocations">
<list>
<value>classpath*:com/landray/kmss/hrt/chart/model/*.hbm.xml</value>
<value>classpath:com/landray/kmss/component/dbop/model/CompDbcp.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/config/model/HrtConfigPersonalInfo.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/config/model/HrtConfigTrainServer.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/config/model/HrtConfigTrainMain.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/config/model/HrtConfigTechnology.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/config/model/HrtConfigPolitics.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/config/model/HrtConfigFunction.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/config/model/HrtConfigEducation.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/config/model/HrtConfigNation.hbm.xml</value>
<value>classpath:com/landray/kmss/sys/organization/model/SysOrgPost.hbm.xml</value>
<value>classpath:com/landray/kmss/sys/organization/model/SysOrgGroupCate.hbm.xml</value>
<value>classpath:com/landray/kmss/sys/organization/model/SysOrgGroup.hbm.xml</value>
<value>classpath:com/landray/kmss/sys/organization/model/SysOrgElement.hbm.xml</value>
<value>classpath:com/landray/kmss/sys/organization/model/SysOrgPerson.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/course/scorm/model/HrtStudyCourse.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/course/scorm/model/HrtStudyCourseType.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/course/scorm/model/HrtCourseProperties.hbm.xml</value>
<value>classpath:com/landray/kmss/hrt/course/scorm/model/HrtStudyStudentCourse.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">com.landray.kmss.util.MySQLLocalDialect</prop>
<prop key="hibernate.show_sql">${chartDB.hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">${chartDB.hibernate.format_sql}</prop>
<prop key="hibernate.jdbc.fetch_size">${chartDB.hibernate.jdbc.fetch_size}</prop>
<prop key="hibernate.jdbc.batch_size">${chartDB.hibernate.jdbc.batch_size}</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
</props>
</property>
<property name="lobHandler" ref="defaultLobHandler2"></property>
</bean>
package com.landray.kmss.util;
import org.hibernate.dialect.function.SQLFunctionTemplate;
/**
* @author Zhangyanan
* 使mysql支持汉字排序
*/
public class MySQLLocalDialect extends org.hibernate.dialect.MySQL5Dialect {
public MySQLLocalDialect(){
super();
registerFunction("convert", new SQLFunctionTemplate(org.hibernate.Hibernate.STRING, "convert(?1 using ?2)") );
registerFunction("convert_gbk", new SQLFunctionTemplate(org.hibernate.Hibernate.STRING, "convert(?1 using gbk)") );
}
}
在hql中就可以使用 select u from User order by convert(personName,gbk)或者 select u from User order by convert_gbk(userName) 来实现按汉字拼音顺序排序了
分享到:
相关推荐
这里我们关注的是“达梦Hibernate方言2.0至4.0”,这是一个专为达梦数据库系统(DM)设计的Hibernate方言支持,涵盖了Hibernate框架的多个版本。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发人员...
2. **多数据库支持**:为了适应不同的数据库,如MySQL、Oracle、SQL Server等,需要使用Hibernate的`Dialect`机制,动态选择合适的数据库方言。通过自定义`Dialect`类,可以实现特定数据库的特性,如存储过程、函数...
同时,通过集成瀚高数据库方言,开发者可以利用Hibernate的高级特性,如懒加载(Lazy Loading)、缓存(Caching)、查询语言(HQL)等,提高开发效率和应用性能。 瀚高数据库Hibernate方言包通常包含以下内容: 1. 类定义...
例如,某些数据库可能支持特定的函数或操作符,而其他数据库则不支持。达梦方言包含了达梦数据库特有的SQL扩展,对于开发人员来说,理解和掌握这些方言能提高代码的效率和执行性能。 “达梦jdbc”指的是利用JDBC...
SQL方言是Hibernate为特定数据库系统提供的一个抽象层,它确保Hibernate生成的SQL语句能与目标数据库兼容。在配置Hibernate时,我们需要指定正确的方言类,这样Hibernate才能生成正确格式的SQL语句进行执行。例如,...
当Hibernate需要执行SQL操作时,它会根据所配置的方言,将ORM层的通用方法转化为具体数据库能理解的SQL语句。 "支持Access"表示Hibernate方言也涵盖了Microsoft Access数据库。尽管Access通常不被用作大型企业级...
在Java开发中,当使用诸如Hibernate、MyBatis等ORM(对象关系映射)框架时,需要指定数据库的方言,以便框架能够生成适应特定数据库的SQL语句。这个jar包包含了达梦数据库特有的SQL转换规则和函数实现,使得开发人员...
Criteria提供了一种面向对象的方式来构建查询,而HQL则是Hibernate特有的SQL方言,更加贴近面向对象的思维。Query接口则支持更复杂的查询,如分页、排序和函数操作。 数据库设计方面,电信计费系统可能包括用户表、...
- **hibernate.dialect**:指定特定数据库的方言。不同的数据库有不同的SQL语法,通过设置该属性可以确保Hibernate生成正确的SQL语句。 - **hibernate.connection.driver_class**:指定数据库驱动类名。 - **...
jDialects支持多达80多种数据库方言的DDL创建、实体源码生成、分页、函数变换、类型变换及主要的JPA注解解析功能。它通常与JDBC工具组合使用,也可以作为其它Dao工具(如jSqlBox)的一个组成部分。
- **异常处理**:方言还负责将特定数据库的异常转换为Hibernate的异常,便于开发者进行统一处理。 #### 常见Hibernate方言及适用数据库 1. **HSQLDB方言**:适用于HSQL Database Engine。 2. **MySQL方言**:适用...
Hibernate需要知道如何与所使用的数据库方言对话,方言是数据库特有的SQL语法和函数。文档中提到了如何指定和解析方言,这是连接特定数据库的一个重要步骤。 ### 架构生成与映射 Hibernate提供了自动架构生成工具,...
3.1.x版本中,Hibernate已经包含了对主流数据库的方言支持,如MySQL、Oracle、PostgreSQL等,使得代码更具移植性。 八、性能优化 在3.1.x版本中,Hibernate对性能进行了多方面的优化,包括延迟加载(Lazy Loading)...
2. **配置 Hibernate**:编写配置文件(hibernate.cfg.xml),设置数据库连接信息、方言、缓存策略等。 3. **创建实体类**:定义 Java 类并使用注解或 XML 描述其与数据库表的映射关系。 4. **配置映射**:编写实体...
Hibernate是Java开发者常用的一款对象关系映射(ORM)框架,它允许开发人员使用面向对象的编程方式来操作数据库,从而避免了直接编写SQL语句的繁琐。本文档旨在帮助Java开发者更好地理解和应用Hibernate,以便更高效...
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...
这通常包括创建`hibernate.cfg.xml`配置文件,定义数据库连接参数(如URL、用户名、密码),以及指定使用的数据库方言。此外,还需要在`pom.xml`或`build.gradle`文件中添加Hibernate的依赖库。 3. **实体类与表...
3. **配置与初始化**:使用Hibernate时,需要配置Hibernate配置文件(hibernate.cfg.xml),其中包含数据库连接信息、方言设置等。初始化Hibernate会话工厂(SessionFactory)是应用程序启动时的关键步骤。 4. **...
《Hibernate - 符合Java习惯的关系数据库持久化》是一份关于Hibernate框架的详细教程,旨在帮助Java开发者理解和应用Hibernate进行数据库操作。Hibernate是Java领域中的一款流行的对象关系映射(ORM)工具,它允许...