hibernate用hql做中文排序

2022-04-08 06:27:11 字數 685 閱讀 5092

用hibernate+mysql的童鞋是不是很苦惱為什麼mysql不支援中文排序呢?沒辦法,只有等utf8_unicode_cn 出來了。如果用hibernate即想實現跨庫,又想不改**如何實現呢,下邊告訴你答案。

方法一、描述:給hibernate的mysql方言包註冊乙個排序方法,該方法中實現了mysql中文排序。貼**:

public class mysqlextenddialect extends mysqldialect

}該方法的弊端是需要改不同資料的方言包來實現不改**的跨庫。(需要改order by field 為 order by convert_gbk(field))。 

方法二、描述:單獨修改hibernate的mysql方言包,修改order by方法,使該方法預設使用convert方法來實現中文排序。貼**:

public class mysqlgbkdialect extends mysqldialect

public string renderorderbyelement(string expression, string collation, string order, nullprecedence nulls)

}renderorderbyelement該方法為複寫父類中的方法,優點是不用改其他資料方言包,不用改**,缺點是所有的排序方法將都執行convert方法。

hibernate 用hql做中文排序

用hibernate mysql的童鞋是不是非常苦惱為什麼mysql不支援中文排序呢?沒辦法。僅僅有等utf8 unicode cn 出來了。假設用hibernate即想實現跨庫,又想不改 怎樣實現呢。下邊告訴你答案。方法一 描寫敘述 給hibernate的mysql方言包註冊乙個排序方法,該方法中...

Hibernate中的HQL查詢語句

hibernate查詢語言是物件導向的查詢語言,其結構與sql查詢類似,不同的是,hql查詢的主體是實體化類而不是資料表。hql差詢提供了一種應用與資料庫之間的抽象,從而提高了可移植性。hql查詢的基本事例 query query session.createquery select new use...

hibernate多表查詢HQL

innerjoin 內連線 left outerjoin 左外連線 right outerjoin 右外連線 fulljoin 全連線,並不常用 sql中的條件用on即 leftjoin.on.hql中的條件用with即 leftjoin.with.語句innerjoin,left outerjoi...