如何找出hibernate创建的对象?

时间:2014-07-14 06:46:11

标签: java hibernate

我们在项目中使用hibernate3和spring 3.

域对象的数量非常多,并且对象之间的某些关系非常渴望。我正在尝试微调应用程序。我在对象之间创建了eager-fetch图,但是,现在我需要找出hibernate正在创建哪些对象。

有没有办法找出hibernate创建的域对象?

1 个答案:

答案 0 :(得分:1)

最好的选择是开始寻找为最受欢迎的页面生成的SQL查询或者需要更多时间加载的页面。

启用功能Show SQL

OneToOneManyToOne默认为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附加到您的上下文路径。然后你可以看到图表。