我们在项目中使用hibernate3和spring 3.
域对象的数量非常多,并且对象之间的某些关系非常渴望。我正在尝试微调应用程序。我在对象之间创建了eager-fetch图,但是,现在我需要找出hibernate正在创建哪些对象。
有没有办法找出hibernate创建的域对象?
答案 0 :(得分:1)
最好的选择是开始寻找为最受欢迎的页面生成的SQL查询或者需要更多时间加载的页面。
启用功能Show SQL
。
OneToOne
,ManyToOne
默认为Eager,让它们变得懒惰。
同样使用OneToOne
,还有一些问题refer here
利用第一级,第二级和查询缓存。
创建indexes
。
也可以尝试使用net.bull.javamelody.MonitoredWithSpring
Java旋律变化
在pom file
<dependency>
<groupId>net.bull.javamelody</groupId>
<artifactId>javamelody-core</artifactId>
<version>1.50.0</version>
</dependency>
在web.xml
文件中添加以下内容
<filter>
<filter-name>monitoring</filter-name>
<filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
<init-param>
<param-name>displayed-counters</param-name>
<param-value>spring,http,sql,error,log </param-value>
</init-param>
<init-param>
<param-name>disabled</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>monitoring</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring-config/mvc/monitoring-spring.xml
</param-value>
</context-param>
<强> monitoring-spring.xml
强>
<bean id="monitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor">
<property name="pointcut">
<bean class="net.bull.javamelody.MonitoredWithAnnotationPointcut"/>
</property>
</bean>
Use annotations in controller or services like below
@MonitoredWithSpring(name = "XYZ")
将网址/monitoring
附加到您的上下文路径。然后你可以看到图表。