gpt4 book ai didi

java - JPA 或查询拦截

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:05 24 4
gpt4 key购买 nike

如何拦截正在执行的查询?基本上,我必须拦截通过 EntityManger 执行的每个查询并将“NATIVE”sql 记录到应用程序服务器日志文件中进行分析?您能否让我知道是否有任何方法可以在前后进行内省(introspection),以便我可以记录查询和执行时间?

请记住,JPA 引擎可以是 hibernate 或 Open JPA,因此无论 JPA 实现如何,在服务器端内省(introspection)查询的通用方法是什么?

非常感谢任何帮助..

提前致谢,

巴哈维什

最佳答案

如果您使用 Hibernate,则可以使用 Hibernate 拦截器,这会拦截所有触发的查询。

Session s = sessionFactory.openSession(new MyInterceptor());

这样,从此 session 对象触发的任何查询都将被拦截,您可以根据需要调整查询,也可以一起停止查询。

或者,您可以记录特定文件的所有查询(使用 log4j)。这需要您在 hibernate cfg 文件中将 show_sql 设置为 true。

关于java - JPA 或查询拦截,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6407732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com