在我的java应用程序(使用Hibernate)中,我看到了Hibernate度量中的以下细节
org.hibernate.engine.internal.StatisticalLoggingSessionEventListener Session Metrics {
46195 nanoseconds spent acquiring 1 JDBC connections;
0 nanoseconds spent releasing 0 JDBC connections;
148413278 nanoseconds spent preparing 1300 JDBC statements;
203780356679 nanoseconds spent executing 1300 JDBC statements;
0 nanoseconds spent executing 0 JDBC batches;
0 nanoseconds spent performing 0 L2C puts;
0 nanoseconds spent performing 0 L2C hits;
0 nanoseconds spent performing 0 L2C misses;
414686772 nanoseconds spent executing 2 flushes (flushing a total of 1376 entities and 0 collections);
325171056 nanoseconds spent executing 650 partial-flushes (flushing a total of 107052 entities and 107052 collections)
典型的代码流是使用源表中的数据为某些目标表准备数据:
从多个源表中选择记录[4到5表],
进行一些处理,为最终目标表[1-3表]准备数据。在处理过程中的任何时候,源表实体都没有更改。也没有使用本机查询。
在最终表中保留记录。
我想得到一些关于寻找什么来识别可能导致部分刷新的指针。
谢谢
最佳答案
必须在要持久化的方法中指明@Transactional注释。
关于java - 了解 hibernate 部分刷新行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27272416/