Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从EntityManager引发的NullPointerException_Java_Spring_Jpa_Nullpointerexception_Entitymanager - Fatal编程技术网

Java 从EntityManager引发的NullPointerException

Java 从EntityManager引发的NullPointerException,java,spring,jpa,nullpointerexception,entitymanager,Java,Spring,Jpa,Nullpointerexception,Entitymanager,我的EntityManager有问题,它抛出NullPointerException。 代码如下: PersonServiceJpa.java 应用程序上下文 \WEB-INF\database.properties 非常感谢 NullPointerException正在发生,因为PersonServiceJPA类中未注入entityManager对象 在applicationContext.xml中,您正在创建personServicebean。在创建PersonService bean时

我的
EntityManager
有问题,它抛出
NullPointerException
。 代码如下:

PersonServiceJpa.java 应用程序上下文

\WEB-INF\database.properties

非常感谢

NullPointerException正在发生,因为PersonServiceJPA类中未注入entityManager对象

applicationContext.xml中,您正在创建personServicebean。在创建PersonService bean时,需要注入entityManager类

您的代码:

<bean id="personService"
        class="com.smartpump.service.jpa.PersonServiceJpa"></bean>
<bean id="personService"
        class="com.smartpump.service.jpa.PersonServiceJpa">
    <property name="entityManager" ref="entityManagerFactory"/>
</bean>

修改代码:

<bean id="personService"
        class="com.smartpump.service.jpa.PersonServiceJpa"></bean>
<bean id="personService"
        class="com.smartpump.service.jpa.PersonServiceJpa">
    <property name="entityManager" ref="entityManagerFactory"/>
</bean>

我认为您必须设置:

<context:annotation-config/>

在applicationContext.xml中,或者定义一个特殊的Springbean(也在applicationContext.xml中):


请告诉我这是否有帮助

  • 您应该修改应用程序上下文,以添加事务注释配置
    尝试在EntityManager本身上使用@PersistenceContext

    @PersistenceContext
    Private EntityManager entityManager;
    

    我不是说它对setter方法有效,恐怕这不是正确的答案。请注意EntityManager上的“@PersistenceContext”。OP知道它必须被注入,但他想以不同的方式进行注入,但它不起作用:)我尝试了这个方法,但我遇到了另一个错误:“访问/rest/myresource/todos时出现问题。原因:服务不可用”我应用了这个方法,但不起作用。我的NPE也是这么说的你能把你的一些上传到github或bitbucket吗?我添加了github的链接,但没有人回答是的,人们也有生活在so之外:)今天晚些时候我会尝试研究它。
    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
    
    @PersistenceContext
    Private EntityManager entityManager;