【发布时间】:2014-11-03 16:09:01
【问题描述】:
尝试在运行时向我的 Web 应用程序中的所有 MySQL 选择查询添加注释。
例如,代码中的原始查询如下所示:
select a,b,c from ......
select x,y from...
所有这些都需要在运行时修改为:
select a,b,c /*Comment*/ from ...
select x,y /*Comment*/ from ...
应用程序在 Hibernate 4.2.1 上运行。
我能想到的唯一解决方案是扩展org.hibernate.dialect.MySQLDialect 并将/*Comment*/ 添加到新的CustomMySQLDialect 中。
对修改哪种方法来完成此操作有点困惑。将不胜感激任何指向正确方向的指针。
可以覆盖org.hibernate.dialect.Dialect 中的transformSelectString(java.lang.String) 方法来完成此操作吗?
编辑 1: 自定义 MySQL 方言中的 transformSelectString 不适用于运行时 SQL 修改
【问题讨论】:
-
如果您使用的是hibernate,那么添加一个列(这可能是hibernate不理解的)对您有什么帮助?
-
您如何称呼这个“TESTVALUE”?它从何而来?我还没收到呢。。
-
我无法修改原始查询,但我需要在执行前在查询中添加一个额外的字符串常量。 "TESTVALUE" 只是一个字符串常量 Leo
-
我不需要休眠来理解或映射列。只需要在执行前向查询传递一个值。
-
你为什么要这样做?你想解决什么问题?
标签: java mysql hibernate dialect