码迷,mamicode.com
首页 > 其他好文 > 详细

MAHOUT_LOCAL is not set;adding HADOOP_CONF_DIR to classpath

时间:2014-05-23 00:40:35      阅读:365      评论:0      收藏:0      [点我收藏+]

标签:hibernate   spring   事务   cache   

     Spring3与Hibernate4整合时出现了nested exception is java.lang.NoClassDefFoundError: Lorg/hibernate/cache/CacheProvider。

      hibernate3的时候,用spring来控制sessionfactory用的可以是org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean,因为用的是hibernate4所以照猫画虎写了个org.springframework.orm.hibernate4.annotation.AnnotationSessionFactoryBean,发现没有这个类。那继续用hibernate3的那个,接着便有上一段的错误。


     stackoverflow,用org.springframework.orm.hibernate4.LocalSessionFactoryBean
替换org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean。


    In the Hibernate 4 the CacheProvider-related interfaces and classes has been removed. Now the RegionFactory related cache interfaces are available for secondary level caching.


    Hibernate4已经把CacheProvider相关的接口和类移除,现在的RegionFactory关联的缓存接口在二级缓存中可用。


两者联系:

其实可以看到:


java.lang.Object
  bubuko.com,布布扣org.springframework.orm.hibernate3.AbstractSessionFactoryBean
      bubuko.com,布布扣org.springframework.orm.hibernate3.LocalSessionFactoryBean
          bubuko.com,布布扣org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean


AnnotationSessionFactoryBean还是从LocalSessionFactoryBean继承的。


    同时还发现了一个问题。声明式的事务管理中同时加了Annotation和xml也声明了。

xml声明是aop的方式,在方法中切进去。

<tx:annotation-driven transaction-manager="txManager"/> 
	<bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
	  <property name="sessionFactory" ref="sessionFactory" />
	</bean>
	 <tx:advice id="txAdvice" transaction-manager="txManager">
	    <tx:attributes>
	      <tx:method name="add"  read-only="true" />
	    </tx:attributes>
	  </tx:advice>

	<aop:config>
		<aop:pointcut 
			expression="execution (public * com.my.service..*.*(..))" 
			id="servicePointCut" />
		<aop:advisor
        advice-ref="txAdvice"
        pointcut-ref="servicePointCut"/> 
	</aop:config> 

同时service类方法中的annotation也忘记去掉


	@Transactional
	public void add(User user) {
			userDAO.save(user);
			Log log = new Log();
			log.setName("output!");
			logDAO.save(log);
	}

xml本身的readonly就失效了,所以两者中选取一种即可。


原文:http://www.roseindia.net/hibernate/hibernate4/Hibernate-4-AnnotationSessionFactoryBean.shtml

帖子:http://stackoverflow.com/questions/8565051/spring-3-1-hibernate-4-sessionfactory

MAHOUT_LOCAL is not set;adding HADOOP_CONF_DIR to classpath,布布扣,bubuko.com

MAHOUT_LOCAL is not set;adding HADOOP_CONF_DIR to classpath

标签:hibernate   spring   事务   cache   

原文地址:http://blog.csdn.net/dhuwxs/article/details/26514547

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!