`
yacki
  • 浏览: 47043 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Spring与Hibernate整合自动扫描时的陷阱

阅读更多
在配置Hibernate+Spring时,使用了Spring 2.5.6的自动包扫描(packagesToScan)功能。

这个功能可以自动扫描包中的实体类,避免书写annotatedClasses的麻烦。但在使用这个功能时,我一直遇到类似这样的错误:

Caused by: org.hibernate.MappingException: Unknown entity: com.mycompany.app.model.Users

Spring中的配置是:

	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					${hibernate.dialect}
				</prop>
				<prop key="hibernate.show_sql">
					${hibernate.show_sql}
				</prop>
				<prop key="hibernate.jdbc.fetch_size">
					${hibernate.jdbc.fetch_size}
				</prop>
				<prop key="hibernate.jdbc.batch_size">
					${hibernate.jdbc.batch_size}
				</prop>
				<prop key="hibernate.c3p0.timeout">
					${hibernate.c3p0.timeout}
				</prop>
			</props>
		</property>
		<property name="packagesToScan" value="com.mycompany.app.model.*" />
	</bean>

但是我的实体类明明在com.mycompany.app.model下,为何扫描不到呢?

后来仔细查看文档发现,packagesToScan的value应该配置成com.mycompany.app.*才行,也就是Entity所在包的上一层。这真是一个令人匪夷所思的陷阱啊!
分享到:
评论
1 楼 char1st 2012-12-03  
packagesToScan即要扫描的包。

Users 在 com.mycompany.app.model包里面 。如果只要扫描这个包,value就应该是com.mycompany.app.model
com.mycompany.app.* 这样写也包含 com.mycompany.app.model。
而com.mycompany.app.model.*是指com.mycompany.app.model包下面所有的包。

相关推荐

    Spring与Hibernate整合

    本篇将详细介绍Spring3.3与Hibernate2.1整合的过程及其相关知识点。 首先,Spring3.3作为一款轻量级的IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)框架,它能够管理...

    Spring+hibernate整合源代码

    这个“Spring+hibernate整合源代码”应该包含了实现上述整合步骤的示例代码,可以作为学习和参考的资源。通过学习和实践这些代码,你可以更好地理解和掌握 Spring 和 Hibernate 整合的细节,提升你的 Java Web 开发...

    spring和hibernate整合

    《Spring与Hibernate整合详解》 在现代Java Web开发中,Spring和Hibernate是两个非常重要的开源框架,它们分别在依赖注入和对象关系映射(ORM)领域有着广泛的应用。Spring作为一个全面的轻量级应用框架,提供了...

    Spring与Hibernate整合实例(博客用户登录增删改查)

    在这个“Spring与Hibernate整合实例(博客用户登录增删改查)”中,我们将探讨如何将这两个强大的框架——Spring和Hibernate——结合起来,以实现一个博客系统的用户管理功能,包括用户登录、注册、信息修改以及数据...

    Spring与Hibernate整合小例子

    "Spring与Hibernate整合"是为了实现业务逻辑层和数据访问层的高效协作。整合过程通常包括以下几个步骤: 1. **引入依赖**:首先,需要在项目中添加Spring和Hibernate的相关库。这通常通过Maven或Gradle的依赖管理来...

    spring与hibernate的整合

    这样,Spring 会在调用 `addDepartment()` 方法时自动开启、提交或回滚事务,无需在业务代码中手动管理。 总结来说,Spring 与 Hibernate 的整合主要涉及 SessionFactory 的配置、DAO 类的实现以及事务管理。通过 ...

    spring_hibernate整合实例

    当我们谈论"spring_hibernate整合实例"时,意味着我们将这两个框架结合在一起,以实现更高效、更模块化的后端开发。 首先,Spring和Hibernate的整合主要涉及以下几个核心概念: 1. **依赖注入(DI)**:Spring的...

    springmvc spring hibernate整合Demo

    在整合Spring MVC、Spring和Hibernate时,通常步骤如下: 1. 配置Spring:首先,我们需要配置Spring的ApplicationContext,定义Bean并管理它们的生命周期。这通常通过XML或Java配置完成,包括Spring MVC的...

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(part01)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...

    spring+hibernate整合demo

    在"标签"中,"spring 整合 hibernate helloworld"进一步强调了这是关于Spring与Hibernate整合的基础教学,可能包含了一个简单的入门级示例。"helloworld"通常表示最基础的程序,用于展示框架的基本用法。 在"压缩...

    struts2+spring+hibernate 整合的jar包

    此外,Spring还提供了与Hibernate的整合模块,使得ORM操作更加便捷。 3. **Hibernate**:Hibernate是一个优秀的对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,而无需直接编写SQL语句。Hibernate...

    spring mvc + spring + hibernate 全注解整合开发视频教程 11

    在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...

    Struts2,Spring与Hibernate整合应用,学生成绩管理系统

    ### Struts2、Spring与Hibernate整合应用:学生成绩管理系统 #### 一、知识点概览 本项目聚焦于Struts2、Spring与Hibernate三大框架的整合应用,旨在构建一个高效、稳定、易于维护的学生成绩管理系统。通过整合这...

    浅谈Spring+Hibernate整合(共16页).doc

    总之,Spring 和 Hibernate 的整合是 Java Web 开发中的常见实践,它利用 Spring 的强大管理能力和事务处理,结合 Hibernate 的 ORM 功能,简化了数据库操作和事务管理,提高了软件的可扩展性和可维护性。...

    struts+spring+hibernate整合

    通过以上步骤,一个基本的Struts、Spring和Hibernate整合的应用就搭建完成了。这个整合的关键在于Struts处理HTTP请求,Spring管理业务对象和依赖,而Hibernate则处理数据库操作。这样的架构可以实现松耦合,便于代码...

    Spring,Hibernate整合源码

    当这两个框架进行整合时,可以实现更高效、更灵活的Java应用程序开发。 Spring框架以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)闻名,它使得代码更加模块化,降低...

    SSH整合源码(Struts+Spring+Hibernate整合用户注册例子)

    Struts和Spring之间通过ActionServlet和Spring的DispatcherServlet协同工作,而Spring与Hibernate之间的整合通常通过SessionFactoryBean和HibernateTemplate完成。 8. **用户注册流程**:用户提交注册信息后,...

    SSH整合学习笔记之spring与hibernate整合(二)之c3p0

    整合Spring和Hibernate时,我们需要在Spring的配置文件中定义数据源,这里就是使用c3p0作为数据源。以下是一个简单的配置示例: ```xml &lt;!-- c3p0配置属性 --&gt; ``` 接下来,我们还需要配置...

    spring-Hibernate整合代码测试过程

    总结起来,"spring-Hibernate整合代码测试过程"涉及了Spring框架的依赖注入、事务管理、以及与Hibernate的整合,同时也涵盖了Hibernate的实体映射、DAO设计和事务控制。通过这个过程,我们可以构建出一个高效、健壮...

    Struts+Spring+Hibernate整合练习

    Struts+Spring+Hibernate 整合是Java Web开发中常用的一种技术栈,它结合了三个强大的框架,分别负责表现层(Struts)、业务逻辑层(Spring)和持久化层(Hibernate)。这种组合提供了完整的MVC架构,使得开发过程...

Global site tag (gtag.js) - Google Analytics