【发布时间】:2011-12-21 09:29:12
【问题描述】:
我发现并使用了一个闭包,它暂时将 hibernate.SQL 日志记录到 Trace 以允许我查看生成的确切查询。但是,我希望能够让 PostgresQL 的解释自动运行,而不必单独提取查询进行分析。
日志关闭: (在这里找到:http://www.intelligrape.com/blog/2011/10/21/log-sql-in-grails-for-a-piece-of-code/)
public static def execute(Closure closure) {
Logger sqlLogger = Logger.getLogger("org.hibernate.SQL");
Logger transactionLogger = Logger.getLogger("org.hibernate.transaction");
Level currentLevel = sqlLogger.level
Level transLevel = transactionLogger.level
sqlLogger.setLevel(Level.TRACE)
transactionLogger.setLevel(Level.TRACE)
def result = closure.call()
sqlLogger.setLevel(currentLevel)
transactionLogger.setLevel(transLevel)
result
}
用法:
def result
execute{
result=Dog.createCriteria().list{
eq("breed","Greyhound")
}
}
我想要可以以类似方式使用的东西。
这是我可以用 Criteria 或 Hibernate.Restrictions 的子类做的事情吗?
或者我在文档中是否缺少关于如何修改从 GORM 发送到数据库的 SQL 语句的内容?
感谢您提供任何信息。
【问题讨论】:
标签: sql hibernate postgresql grails grails-orm