我在Spring中使用hibernate 3.0和Mysql 5.我在JBOSS中配置了JNDI数据源并在应用程序上下文中使用它。
我的问题是Hibernate每秒向数据库发出平均466.4次查询,几乎没有任何网站负载。
ApplicationContext.xml片段是
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" scope="singleton">
<property name="jndiName" value="java:MyCustomDSName" />
<property name="resourceRef" value="true" />
</bean>
我在java级别使用JTA事务。 欢迎任何帮助。
答案 0 :(得分:1)
其中一个应该是这种情况
请发布您的域名模型以及正在执行的查询。
答案 1 :(得分:0)
您是如何使用JTA交易的?如果每个Java方法都标记为需要新事务,这可以解释您的部分问题。此外,应审查您的Hibernate对象关系。如果您有复杂的关系,在模型关系或循环关系中定义了许多急切加载的对象,那么您可能需要解决更难的问题。
答案 2 :(得分:0)
您可以处理N + 1个查询问题right from unit tests。此外,将所有EAGER
关联切换为LAZY和initialize the ones that you need at query time with JOIN FETCH
。