Ошибка создания пружинного загрузочного компонента - «Пустое конечное поле em, возможно, не было инициализировано» - PullRequest
0 голосов
/ 25 марта 2020

Я новичок ie для платформы весенней загрузки. Я успешно сделал грубую операцию. После этого я решил, что делать расширенный поиск понятий. Пожалуйста, посмотрите код ниже, который я использовал.

package com.lean.repository;

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

import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

import org.springframework.data.jpa.repository.JpaRepository;

import com.lean.entity.Merchant;

    public interface MerchantDao extends JpaRepository<Merchant, Long> {
        EntityManager em;

        public List<Merchant> findAllByNameIn(Set<String> name);

        public default List<Merchant> findMerchantList(String name, String email) {
            CriteriaBuilder cb = em.getCriteriaBuilder();
            CriteriaQuery<Merchant> cq = cb.createQuery(Merchant.class);

            Root<Merchant> book = cq.from(Merchant.class);
            List<Predicate> predicates = new ArrayList<>();

            if (name != null) {
                predicates.add(cb.equal(book.get("name"), name));
            }
            if (email != null) {
                predicates.add(cb.equal(book.get("email"), email));
            }
            cq.where(predicates.toArray(new Predicate[0]));

            return em.createQuery(cq).getResultList();
        };

    }

Здесь я получаю сообщение об ошибке ниже.

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'merchantDao': Invocation of init method failed; nested exception is java.lang.Error: Unresolved compilation problem: 
    The blank final field em may not have been initialized

Когда я пытаюсь получить объект сущности "EntityManager em" Я получу вышеуказанную ошибку.

Пожалуйста, помогите кому-нибудь решить проблему. Заранее спасибо

1 Ответ

0 голосов
/ 25 марта 2020

Попробуйте: -

@PersistenceContext
private EntityManager em;

Также проверьте наличие следующих зависимостей

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.11.Final</version>
    </dependency>
</dependencies>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...