Hibernate中HQL使用的两种方试要注意的配置事项

首先看问题:

1 不能创建bean

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginAction' 


2 bean 中其他的引用也不能创建

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibLoginDAOImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'annotatedClasses' of bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Bean property 'annotatedClasses' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?


先不看第二个错误后面的提示,可以判断为配置问题.

sessionFactory 不能扫描bean .,因为之前只把 mappingDirectoryLocations 改了annotatedClasses .

所以要看下面的配置.



Spring对hibernate配置文件hibernate.cfg.xml的集成,来取代hibernate.cfg.xml的配置

spring对hibernate配置文件hibernate.cfg.xml的集成相当好,可以在Spring中配置Hibernate的SessionFactory从而取代Hibernate.cfg.xml和HibernateSessionFactory.java

Spring在集成Hibernate时又分为两种形式:(集成后就不需要Hibernate.cfg.xml了)
1、继续使用Hibernate的映射文件*.hbm.xml
2、使用jpa注解形式的pojo对象,而去掉*.hbm.xml的Hibernate映射文件

 


1、继续使用Hibernate的映射文件*.hbm.xml时扫描映射文件的方法


<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

2、使用jpa注解形式的pojo对象,而去掉*.hbm.xml的Hibernate映射文件 时配置的方法

 

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">



由第一种转第二种注解配置的时候.区别就在这里.

同时引入的实体类不变.

<property name="annotatedClasses">
<list>
<value>com.danlan.vo.Knowledge</value>
<value>com.danlan.vo.MjhUserinfo</value>
</list>
</property>


至此.错误解决.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值