내 응용 프로그램의 context.xml :최대 절전 모드 캐싱 성능이 향상되지 않습니다
이import javax.persistence.Cacheable;
import org.hibernate.annotations.Cache;
@Cacheable
@Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.READ_ONLY)
낙타 경로 빌더의 DSL은 다음과 같다 : 다음과 같이 내 실체를 주석 한
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
..
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
..
default-autowire="byName">
<import resource="jms-context.xml" />
<context:property-placeholder location="classpath:res.properties" />
<context:annotation-config />
<context:component-scan base-package="..." />
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="PROPAGATION_REQUIRED"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager" />
<property name="propagationBehaviorName" value="PROPAGATION_REQUIRED" />
</bean>
<bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.database.driverClass}" />
<property name="jdbcUrl" value="${jdbc.database.url}" />
<property name="user" value="${jdbc.database.username}" />
<property name="password" value="${jdbc.database.password}" />
...
</bean>
<bean id="GLOBAL" class="oracle.jdbc.pool.OracleDataSource"
destroy-method="close" p:URL="${jdbc.database.url}" p:user="${jdbc.database.username}"
p:password="${jdbc.database.password}">
<property name="connectionCachingEnabled" value="true" />
<property name="connectionCacheProperties">
<util:map>
<entry key="MinLimit" value="${jdbc.database.minLimit}" />
<entry key="MaxLimit" value="${jdbc.database.maxLimit}" />
<entry key="InitialLimit" value="${jdbc.database.initialLimit}" />
</util:map>
</property>
</bean>
<bean id="global-tm" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="global-em" />
<property name="dataSource" ref="GLOBAL" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="global-em" />
</bean>
<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="false" />
<property name="generateDdl" value="false" />
<property name="databasePlatform" value="${jpa.hibernate.dialectClass}" />
</bean>
<bean id="global-em"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:packagesToScan="..." p:dataSource-ref="pooledDataSource"
p:jpaVendorAdapter-ref="jpaVendorAdapter">
<property name="jpaPropertyMap">
<map>
<entry key="hibernate.temp.use_jdbc_metadata_defaults" value="false" />
<entry key="hibernate.cache.region.factory_class"
value="org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory" />
<entry key="hibernate.cache.use_second_level_cache" value="true" />
<entry key="hibernate.cache.use_query_cache" value="true" />
<entry key="javax.persistence.sharedCache.mode" value="ENABLE_SELECTIVE" />
<entry key="hibernate.generate_statistics" value="true" />
</map>
</property>
</bean>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
</beans>
을
을from(fromURI)
...
.policy(required)
.bean(bean1, "proc")
...
.recipientList().method(recipientList, "endPoint")
...
.end();
하지만 눈에 띄는 개선점을 발견 할 수 없었습니다. 내가 놓친 게 있니?
내 제약 조건은 다음과 같습니다 내 코드는 JPA 준수에 필요로
- 내 코드에서 직접 (org.hibernate.annotations.Cache)처럼 최대 절전 모드 사용할 수 없습니다.
- 내 항목에 주석이 달립니다. 그래서, 콩은 hbm.xml
당신은 ('org.hibernate.annotations.Cache') _와 같은 하이버 네이트를 사용할 수 없다고하지만 _ 당신은 _ 그렇습니다. 귀하의 예를 정확하게 보여 주려고하는지 설명해 주시겠습니까? –
@BoristheSpider, 혼란스럽게 생각합니다. 심지어 나는 Hibernate를 직접 사용해 보았지만 아무 소용이 없었다. Spring-JPA 기본 설정을 사용해야합니다. 최대 절전 모드 일 것입니다 –