将 Hibernate 的 HQL 转成最终要执行的 SQL 语句

来源:互联网 发布:stm8编程手册中文版 编辑:程序博客网 时间:2024/06/05 15:45

关于 convert_gbk 函数请看这里

标签:HQL Hibernate

[1].[代码] HQL2SQL.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
26
27
28
29
30
31
32
33
34
/**
 * HQL2SQL.java of DLOG4J_E40
 * 作者: Winter Lau
 * 时间: 2008-1-30
 * 项目主页: <a href="http://www.dlog4j.com/">http://www.dlog4j.com</a>
 */
packagecom.dlog4j.tester;
 
importorg.hibernate.hql.FilterTranslator;
importorg.hibernate.hql.QueryTranslatorFactory;
importorg.hibernate.impl.SessionFactoryImpl;
 
importcom.dlog4j.dbaccess.HibernateUtils;
 
/**
 * HSQL to SQL
 * -Djava.ext.dirs=webapp/WEB-INF/lib;packages -cp webapp/WEB-INF/classes
 * @author Winter Lau
 */
publicclass HQL2SQL {
 
    /**
     * @param args
     */
    publicstatic void main(String[] args) {
        SessionFactoryImpl sfi = (SessionFactoryImpl) HibernateUtils.getSessionFactory();
        String hql = "FROM UserBean ORDER BY convert_gbk(name)";
        QueryTranslatorFactory qtf = sfi.getSettings().getQueryTranslatorFactory();
        FilterTranslator qt = qtf.createFilterTranslator(hql, hql, null, sfi);
        qt.compile(null,false);
        System.out.println(qt.getSQLString());
    }
 
}

0 0
原创粉丝点击