问题描述
[org.springframework.web.context.ContextLoader]Contextinitializationfailedorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'org.mybatis.spring.mapper.MapperScannerConfigurer#0'definedinclasspathresource[applicationContext-persistence.xml]:Errorsettingpropertyvalues;nestedexceptionisorg.springframework.beans.NotWritablePropertyException:Invalidproperty'sqlSessionFactoryBeanName'ofbeanclass[org.mybatis.spring.mapper.MapperScannerConfigurer]:Beanproperty'sqlSessionFactoryBeanName'isnotwritableorhasaninvalidsettermethod.Doestheparametertypeofthesettermatchthereturntypeofthegetter?atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1396)
解决方案
解决方案二:
.Doestheparametertypeofthesettermatchthereturntypeofthegetter?你看看你的set/get方法。
解决方案三:
publicvoidsetSqlSessionFactoryBeanName(StringsqlSessionFactoryName){this.sqlSessionFactoryBeanName=sqlSessionFactoryName;}
解决方案四:
<!--Mybatis的sessionfactory配置--><beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><propertyname="dataSource"ref="dataSource"/><propertyname="configLocation"value="classpath:mybatis/sqlmap-config.xml"/></bean><!--扫描mapper接口--><beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer"><propertyname="basePackage"value="com.lscms.sqlmapper"/><propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/></bean>
解决方案五:
Mybatis没必要和Hibernate一起用吧,大家都是持久层,你的sessionFactory到底用的哪个啊,注意别混用
解决方案六:
Hibernate为什么与MyBatis一起使用呢?有点奇怪。
解决方案七:
引用4楼juwuhen的回复:
Mybatis没必要和Hibernate一起用吧,大家都是持久层,你的sessionFactory到底用的哪个啊,注意别混用
是很有用的,很多大的项目都是两个整合一起用的,hibernate做点简单查询,mybatis做复杂查询,很爽的。问题已经解决了,是自己大意了。
解决方案八:
引用5楼Inhibitory的回复:
Hibernate为什么与MyBatis一起使用呢?有点奇怪。
整合起来用,很爽的,很灵活,mybatis做复杂查询很爽,hibernate做简单查询,和增删改。各有各的优点,各有各的好处,整合起来就是为了充分发挥它们的优点,不然做复杂查询hibernate很恶心的。
解决方案九:
引用7楼zengzengdesign的回复:
Quote: 引用5楼Inhibitory的回复:
Hibernate为什么与MyBatis一起使用呢?有点奇怪。整合起来用,很爽的,很灵活,mybatis做复杂查询很爽,hibernate做简单查询,和增删改。各有各的优点,各有各的好处,整合起来就是为了充分发挥它们的优点,不然做复杂查询hibernate很恶心的。
呵呵,没这么折腾过
解决方案十:
hibernate做复杂查询很恶心这点我知道,难道iBATIS做增删改不好吗,为什么不直接用iBATIS做所有?
解决方案十一:
持久层框架基本只会出现一个,mybatis就足够了,想要做到hibernate哪些save(Entity)update(Entity)delete(Entity)的这些功能自己改造下mybatis就可以了。
解决方案十二:
引用9楼u010541735的回复:
hibernate做复杂查询很恶心这点我知道,难道iBATIS做增删改不好吗,为什么不直接用iBATIS做所有?
Mybatis做增删改也很好,实际上哪一个都很好,只是个人想把他们结合起来使用,纯属闲得无聊啊,哈哈。。。
解决方案十三:
引用10楼suciver的回复:
持久层框架基本只会出现一个,mybatis就足够了,想要做到hibernate哪些save(Entity)update(Entity)delete(Entity)的这些功能自己改造下mybatis就可以了。
嗯嗯是的这个方法也很不错啊,完了可以尝试一下,这个整合只是个人喜好问题,不过还好,整合成功了,用起来个人感觉不错。
解决方案十四:
sqlSessionFactoryBeanName这个方法没set方法
解决方案十五:
引用6楼zengzengdesign的回复:
Quote: 引用4楼juwuhen的回复:
Mybatis没必要和Hibernate一起用吧,大家都是持久层,你的sessionFactory到底用的哪个啊,注意别混用是很有用的,很多大的项目都是两个整合一起用的,hibernate做点简单查询,mybatis做复杂查询,很爽的。问题已经解决了,是自己大意了。
问题在那里啊,我现在碰到一样的问题
解决方案:
引用14楼zZoTwwToZz的回复:
Quote: 引用6楼zengzengdesign的回复:
Quote: 引用4楼juwuhen的回复:
Mybatis没必要和Hibernate一起用吧,大家都是持久层,你的sessionFactory到底用的哪个啊,注意别混用是很有用的,很多大的项目都是两个整合一起用的,hibernate做点简单查询,mybatis做复杂查询,很爽的。问题已经解决了,是自己大意了。
问题在那里啊,我现在碰到一样的问题
我的问题是出在没有把mapper注入到service中引发的错误。小问题,个人疏忽大意了。