yangbintao 2009-08-24 21:07
浏览 560
已采纳

Hibernate在那个方法里将HQL转成普通SQL语句并执行的?

Hibernate在那个方法里将HQL转成普通SQL语句并执行的?
[b]问题补充:[/b]
小弟不才,根据各位的提示还是没能找到具体的转换方法在那里。
[b]问题补充:[/b]
昨天就是在研究这个类,我的修改如下。重编译后替换原来的class文件,运行程序看不到我加上去的打印。
private void generate(AST sqlAst) throws QueryException, RecognitionException
{
System.out.println("************generate begin");
if (this.sql == null)
{
SqlGenerator gen = new SqlGenerator(this.factory);
gen.statement(sqlAst);
System.out.println("--generate1");
System.out.println(gen.getSQL());
System.out.println("--generate2");
this.sql = gen.getSQL();
if (log.isDebugEnabled())
{
log.debug("HQL: " + this.hql);
log.debug("SQL: " + this.sql);
}
gen.getParseErrorHandler().throwQueryException();
}
}
[b]问题补充:[/b]
我写了个根据角色进行数据过滤的方法不能直接用的HQL上只能对原始的SQL语句加工,所以想得到Hibernate转换后的语句且在它进行查询之前将此语句加工,然后再让其执行
[b]问题补充:[/b]
我是新建一个项目在里面按hibernate里的结构建包名,然后把反编译后的类文件放到包下进行编译的。见附件图
[b]问题补充:[/b]
因为我的程序已经写好了,现要加入数据过滤的功能。只能这样改了。
想的太简单了是指hibernate并不是象我想的那样会输出个原始语句然后再执行吗?

  • 写回答

6条回答 默认 最新

  • walsh_bupt 2009-08-25 12:06
    关注

    那你干嘛还用Hibernate,直接用JDBC多简单呀。

    楼主你想的太简单了 :o

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备