0
몇 가지 기사를 살펴본 후 다음을 구성했지만 트랜잭션 관리에 몇 가지 문제점이 있습니다. 내가 아래 구성에서 제대로 나침반을 사용하고 있는지 여부를 알려 주시기 바랍니다 :스프링, eclipselink, 나침반 통합
스프링 설정에:
private CompassSession session;
@CompassContext
protected void setCompassSession(CompassSession session) {
this.session = session;
}
public void index(Coupon coupon) throws AppException{
try {
session.save(coupon);
} catch (CompassException exception) {
logger.debug("Error in coupon indexing: "+ exception.getMessage());
}
}
서비스 계층에서 :
나침반 코드<bean class="org.springframework.orm.jpa.JpaTransactionManager"
id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
<property name="jpaDialect" ref="jpaDialect" />
</bean>
<bean class="org.compass.spring.support.CompassContextBeanPostProcessor"/>
<bean id="compass" class="org.compass.spring.LocalCompassBean">
<property name="classMappings">
<list>
<value>......</value>
<value>......</value>
<value>......</value>
</list>
</property>
<property name="compassSettings">
<props>
<prop key="compass.engine.connection">file:///usr/local/lucene</prop>
<prop key="compass.transaction.factory">
org.compass.spring.transaction.SpringSyncTransactionFactory
</prop>
</props>
</property>
<property name="transactionManager" ref="transactionManager"/>
</bean>
@Transactional
public void saveCoupon(Coupon coupon) throws AppException{
Coupon savedCoupon = dbCouponDAO.saveCoupon(coupon); // saves to db through eclipselink
nonDbCouponDAO.index(savedCoupon); // indexes in compass
}
내 이해에 따르면, 봄에 eclipselink로 구성된 트랜잭션 관리자를 c로 사용할 수 있습니다. ompass 트랜잭션 관리자도 마찬가지입니다. eclipselink와 compass 연산은 모두 서비스 계층에서 언급 한 것처럼 하나의 단위로 사용할 수 있습니다.
내가 여기 뭔가 잘못하고 있는지 알려 주시기 바랍니다.
감사합니다.
필자의 구성으로 추가 코드를 작성하지 않고도 색인을 투명하게 만들 수있었습니다. – tara