Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.persistence.EntityManager' 可用。他

问题描述 投票:0回答:0

我一直遇到这个问题,我不知道如何解决。我使用来自 javax.persistence 的 EntityManager 但是当我运行程序时,它说构造函数正在寻找一个 Bean。

有问题的班级:

package com.example.demo.client.service;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.PropertySource;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service;


import com.example.demo.client.payload.AfipClientDTO;


@Service
@PropertySource({ "classpath:application.properties" })
public class ClientServiceImp implements ClientService{
    
    @PersistenceContext
    private final EntityManager em;
    
    @Autowired
    ClientServiceImp(@Qualifier("afipEntityManager") EntityManager entityManager) {
        this.em = entityManager;
    }
    
    @SuppressWarnings("unchecked")
    @Override
    public AfipClientDTO getAfipClientByDoc(String doc) {
        String query = "select a.id, a.nombre from afipclient a where a.doc = " + "\'" + doc +"\'";
        Query q = em.createNativeQuery(query);
        
        List<Object[]> result = q.getResultList();
        
        //List<AfipClientDTO > lst = new ArrayList<>();
        
        AfipClientDTO ac = new AfipClientDTO();
        
        for(Object[] obj : result) {
            
            ac.setDoc(doc);
            ac.setId((Long)obj[1]);
            ac.setNombre((String)obj[2]);
            
        }
        
        //Page<AfipClientDTO> pageToReturn = new PageImpl<AfipClientDTO>(lst);
        
        return ac;
    }

}

我的pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.adalove</groupId>
    <artifactId>gestor</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>gestor</name>
    <description>Gestor</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <!-- Exploit in 2.0 a 2.16: https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot -->
        <log4j2.version>2.17.0</log4j2.version>

        <!-- Lesser Vulnerability: https://stackoverflow.com/questions/70329808/is-logback-also-affected-by-log4j-0-day-vulnerability-issue-in-spring-boot -->
        <logback.version>1.2.9</logback.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>

        <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

        <!--Oracle database driver -->
        <!-- <dependency> -->
        <!-- <groupId>com.oracle</groupId> -->
        <!-- <artifactId>ojdbc8</artifactId> -->
        <!-- <version>12.2.0.1</version> -->
        <!-- <scope>system</scope> -->
        <!-- <systemPath>${project.basedir}/lib/ojdbc8/12.2.0.1/ojdbc8-12.2.0.1.jar</systemPath> -->
        <!-- <type>jar</type> -->
        <!-- <optional>false</optional> -->
        <!-- </dependency> -->

        <!--Oracle database driver -->
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>12.2.0.1</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- For Working with Json Web Tokens (JWT) -->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.1</version>
        </dependency>

        <!-- For Java 8 Date/Time Support -->
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-core</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.plugin</groupId>
            <artifactId>spring-plugin-core</artifactId>
            <version>1.2.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>

我尝试为@Autowired 修改@PersistenceContext。 还尝试更新项目,但似乎没有任何效果。有什么建议吗?

java spring pom.xml autowired entitymanager
© www.soinside.com 2019 - 2024. All rights reserved.