Spring JPA @PersistenceContext注解EntityManager为空

作者: zhaochenxi 分类: Java 发布时间: 2015-11-08 20:46

异常描述:Spring的dao中使用@PersistenceContext注解JPA的EntityManager,但是在程序运行过程中,出现java.lang.NullPointerException异常。

原因猜想:JPA配置错误导致Spring没有正确注解

实际结果:使用new关键字声明dao对象,所以Spring没有注入。

如果要是希望在spring环境中使用@PersistenceContext和@PersistenceUnit,则在application.xml中配置,检查完配置文件之后发现配置文件没有写错。那么问题应该是出现在依赖注入之中,@PersistenceContext是JPA规范中定义的,Spring只是负责实现该注解,也就是所对该注解的使用必须建立在正确使用Spring上。但是经过检查发现我的EntityManager定义在dao中,然后该dao在service中引用,但是是在service中通过new一个dao来使用的。service有在controller中使用@Autowired注入。所以由于dao是直接new的,dao中的PersistenceContext也就没有能够派上用场。

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注