在我们开始学习Hibernate的时候,我们找到Hibernate可以帮助我们自动创建数据库表,但前提是我们必须配置这个属性:<property name="hbm2ddl.auto">update</property>
然后将实体类的映射文件注册到Hibernate主配置文件里面。
但是在我们整合SSH的时候,大家会发现,Spring配置文件里面配置的SessionFactory里面需要装配Hibernate主配置文件,
也需要装配实体配置文件,但是,如果你在Hibernate主配置文件里面注册实体配置文件,查询在运行的过程中会报错,而且表不会创建出来,这是因为我们已经把Hibernate做的事交给SpringIOC容器去处理了,如果Hibernate主配置文件里面注册了实体类配置文件,IOC容器会去Hibernate主配置文件里面去获取相关的配置信息,但是发现里面注册了实体映射文件,而Spring自身的配置文件里面也注册了实体类包下的所有映射文件,所以它会报解析异常的错误!
解决方案:
然后将实体类的映射文件注册到Hibernate主配置文件里面。
但是在我们整合SSH的时候,大家会发现,Spring配置文件里面配置的SessionFactory里面需要装配Hibernate主配置文件,
也需要装配实体配置文件,但是,如果你在Hibernate主配置文件里面注册实体配置文件,查询在运行的过程中会报错,而且表不会创建出来,这是因为我们已经把Hibernate做的事交给SpringIOC容器去处理了,如果Hibernate主配置文件里面注册了实体类配置文件,IOC容器会去Hibernate主配置文件里面去获取相关的配置信息,但是发现里面注册了实体映射文件,而Spring自身的配置文件里面也注册了实体类包下的所有映射文件,所以它会报解析异常的错误!
解决方案:
将Hibernate主配置文件里面配置的实体映射文件给注释即可!
前提是你Spring配置文件里面的SessionFactory配置了实体映射文件的位置。
欢迎转载,请注明出处!