`
surelei
  • 浏览: 66253 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JPA全注解的自动扫描问题

阅读更多
用maven搭建了一个基于SSH的框架,写单元测试时碰到一个问题。由于我是全注解配置,所以需要spring自动扫描包里面的类,特别是用JPA注解配置的entity类。但是对DAO层做单元测试时,发现一直报“unknown entity”,显然entity未被扫描到。但是类之间的依赖关系都很正常,难道spring只是不扫描JPA注解么?
看一下maven下的项目结构:
src/main/java
src/main/resources
src/test/java
src/test/resources
maven构建的项目源代码和测试代码被分别编译到了target/classes目录和target/test-classes目录,我把classes目录下编译好的entity类的class文件copy到test-classes目录下,运行测试就可以找到entity了,说明spring在扫描JPA的注解时只扫描了test-classes。
单元测试环境和web运行环境的区别只有两个:一个是单元测试环境由测试代码启动spring容器读取配置并初始化,而web运行环境则由web容器来做这件事。另一个区别是单元测试的spring配置文件以及JPA的persistence.xml文件都是另外写的,保存在src/test/resources目录下,也就是说会被编译到test-classes目录。
将persistence.xml文件移动到src/main/resources目录下,运行单元测试,一切正常了!
在网上查到,JPA的entity类要和persistence.xml在一个classpath下(编译后),否则会找不到,不知道这个算bug么?
分享到:
评论

相关推荐

    spring2.5学习PPT 传智博客

    让Spring自动扫描和管理Bean 15.使用JDK中的Proxy技术实现AOP功能 16.使用CGLIB实现AOP功能与AOP概念解释 17.使用Spring的注解方式实现AOP入门 18.使用Spring的注解方式实现AOP的细节 19.使用Spring配置文件...

    SHH简单集成示例

     1、hibernate jpa持久注解注入  2、spring 注解注入,组件扫描 @Resource @Repositroy @Service @Controller  3、struts控制转向  3、对于applicationContext-common.xml和web.xml中配置项的作用进行了描述,让...

    BOS 技术整理

    JPA 注解使用 @Entity 标明是实体类 @Table 映射表名称 @Id 主键标识 @GeneratedValue 自动生成主键的值 @Column 设置映射数据表中列信息 @Temporal 控制数据表保存日期哪个部分(日期、时间、日期时间)...

    java8源码-LearnSpring:学习springboot

    扫描到不同的注解,spring会有什么不同的举动 从 @SpringBootApplition 注解开始看起,该注解派生自其它若干个注解注解的派生性(继承性) 要想明白源码中注解为何如此解析首先需要明白该注解是如何定义的注解的定义...

    Spring攻略(第二版 中文高清版).part2

    1.14 从Classpath中扫描组件 50 1.14.1 问题 50 1.14.2 解决方案 51 1.14.3 工作原理 51 1.15 小结 56 第2章 高级Spring IoC容器 57 2.1 调用静态工厂方法创建Bean 57 2.1.1 问题 57 2.1.2 解决...

    Spring攻略(第二版 中文高清版).part1

    1.14 从Classpath中扫描组件 50 1.14.1 问题 50 1.14.2 解决方案 51 1.14.3 工作原理 51 1.15 小结 56 第2章 高级Spring IoC容器 57 2.1 调用静态工厂方法创建Bean 57 2.1.1 问题 57 2.1.2 解决...

    从零开始学Spring Boot

    1.29 改变自动扫描的包 1.30 Spring Boot Junit单元测试 1.31 SpringBoot启动时的Banner设置 1.32 Spring boot 文件上传(多文件上传) 1.33 导入时如何定制spring-boot依赖项的版本 1.34 Spring Boot导入XML配置 ...

    zxframe demo.rar

    通用缓存,方法级别缓存,数据级缓存(内部自动解决缓存穿透,击穿,雪崩问题) *.配置热更新 *.分布式锁,乐观锁 *.数据源监控,运行状态查询,错误日志查询 源码地址:github.com/zhouxuanGithub/zxframe

    SpringBoot新手学习手册

    组件自动扫描带来的问题 43 将Servlet容器变成Undertow 44 SpringBoot JVM参数调优 44 十一、 2.0版本新特性 45 以Java 8 为基准 45 内嵌容器包结构调整 45 Servlet-specific 的server properties调整 45 ...

    Spring中文帮助文档

    3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @Resource 3.11.5. @PostConstruct 与 @PreDestroy 3.12. 对受管组件的Classpath扫描 3.12.1. @Component和更多典型化注解 3.12.2....

    Spring API

    3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @Resource 3.11.5. @PostConstruct 与 @PreDestroy 3.12. 对受管组件的Classpath扫描 3.12.1. @Component和更多典型化注解 3.12.2....

    spring基础

    如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。...

Global site tag (gtag.js) - Google Analytics