Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA或查询拦截_Java_Hibernate_Jpa - Fatal编程技术网

Java JPA或查询拦截

Java JPA或查询拦截,java,hibernate,jpa,Java,Hibernate,Jpa,如何拦截正在执行的查询?基本上,我必须截取通过EntityManger执行的每个查询,并将“本机”sql记录到应用程序服务器日志文件中进行分析?您能告诉我是否有任何方法可以在查询之前和之后进行内省,以便我可以记录查询和执行所需的时间吗 请记住,JPA引擎可以是hibernate或Open JPA,所以不管JPA实现如何,在服务器端内省查询的一般方法是什么 非常感谢您的帮助 提前感谢, Bhavesh除了实现使用的外部属性需要使用自己的名称空间(例如com.hibernate.log)之外,我在J

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

请记住,JPA引擎可以是hibernate或Open JPA,所以不管JPA实现如何,在服务器端内省查询的一般方法是什么

非常感谢您的帮助

提前感谢,


Bhavesh

除了实现使用的外部属性需要使用自己的名称空间(例如com.hibernate.log)之外,我在JPA规范中没有看到任何关于调试/记录的内容


由于需要在persistence.xml中提到JPA提供程序,您能否将特定于实现的属性放在同一个文件中(至少Hibernate是这样工作的)?

除了实现使用的外部属性需要使用自己的名称空间(例如com.hibernate.log)之外,我在JPA规范中没有看到任何关于调试/记录的内容


由于需要在persistence.xml中提及JPA提供程序,您能否将特定于实现的属性放在同一个文件中(至少这是Hibernate的工作方式)?

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

会话s=sessionFactory.openSession(新的MyInterceptor())

通过这种方式,将拦截从此会话对象激发的任何查询,您可以随意调整查询,也可以同时停止查询

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

如果您使用hibernate,您可以使用hibernate拦截器,这将拦截所有触发的查询

会话s=sessionFactory.openSession(新的MyInterceptor())

通过这种方式,将拦截从此会话对象激发的任何查询,您可以随意调整查询,也可以同时停止查询

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

每个好的DBMS都应该提供(太长)查询日志记录功能

但是,如果您想继续使用Java,请尝试使用或。
请记住,完整的查询日志记录可能会影响应用程序的性能,所以在生产过程中要小心操作。

每个好的DBMS都应该提供(太长的)查询日志记录功能

但是,如果您想继续使用Java,请尝试使用或。
请记住,完整的查询日志记录可能会影响应用程序的性能,所以请在生产中小心操作。

没有通用的方法。任何像样的JPA实现都应该能够记录查询、生成的任何SQL以及执行它所花费的时间。DataNucleus当然会这样做。这不是通用的方法。任何像样的JPA实现都应该能够记录查询、生成的任何SQL以及执行它所花费的时间。DataNucleus当然有