Java 测量使用实体侦听器执行数据库操作的时间

Java 测量使用实体侦听器执行数据库操作的时间,java,spring,hibernate,jpa,listener,Java,Spring,Hibernate,Jpa,Listener,基本上,我需要使用@PostPersist,@PostUpdate等来计算对象被持久化、更新的次数 但是我还需要知道这些存储操作需要多长时间(总共),有没有办法使用(默认)实体侦听器来执行这些操作?您可以激活hibernate统计信息:在persistence.xml中将hibernate.generate_statistics设置为trueeiger by命令行属性by configuration ... <properties> ... <property

基本上,我需要使用
@PostPersist
@PostUpdate
等来计算对象被持久化、更新的次数


但是我还需要知道这些存储操作需要多长时间(总共),有没有办法使用(默认)实体侦听器来执行这些操作?

您可以激活hibernate统计信息:在persistence.xml中将
hibernate.generate_statistics
设置为
true
eiger by命令行属性by configuration

...
<properties>
    ...
    <property name="hibernate.generate_statistics" value="true"/>   
<properties>
。。。
...
并添加到日志记录配置中

<logger name="org.hibernate.stat" level="DEBUG" />

这将告诉您每个会话执行多少SQL语句以及需要多长时间


顺便说一句:在内部,它是由
org.hibernate.engine.internal.StatisticalLoggingSessionEventListener

完成的。我认为更好的方法是使用AOP,截取您想要测量的方法,并做任何您想做的事情。SpringAOP似乎非常适合这一点

我知道它与实体侦听器无关,但它只是一个不同的ideia=)


示例文档:

这可能是一个很好的建议,不幸的是,我必须在本作业中使用一个侦听器。这听起来像是一条路要走,我希望我可以这样使用它(我有使用侦听器完成此任务的限制)。