Метод в jpa - хранилище - PullRequest
       17

Метод в jpa - хранилище

0 голосов
/ 11 декабря 2018

У меня есть метод в ProjectVariantRepository, который возвращает вариант проекта на основе идентификатора.Моя проблема в том, что когда я делаю

ProjectVariant projectVariant = projectVariantService.findProjectVariantById(projectVariantId);
        System.out.println("Project Variant: " + projectVariant);

, мой проект Variant имеет значение null, но в базе данных у меня есть projectVariantId = 1;

@Repository
public interface ProjectVariantRepository extends JpaRepository<ProjectVariant, Integer> {
    public ProjectVariant findByProjectVariantId(int projectVariantId);

интерфейс службы

  public interface  ProjectVariantService {
    ProjectVariant findProjectVariantById(int projectVariantId);

реализация сервиса

@Service
public class ProjectVariantServiceImpl implements ProjectVariantService {

    @Autowired
    private final ProjectVariantRepository projectVariantRepository;


    public ProjectVariantServiceImpl(ProjectVariantRepository projectVariantRepository) {
        this.projectVariantRepository = projectVariantRepository;

    }

    @Override
    public ProjectVariant findProjectVariantById(int projectVariantId) {
        return projectVariantRepository.findByProjectVariantId(projectVariantId);
    }
  }

Я не понимаю, что я сделал не так ..

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

как имя свойства в классе сущности?Id или projectVariantId?Если это Id, вы должны создать свой метод, например:

@ Открытый интерфейс репозитория ProjectVariantRepository расширяет JpaRepository {открытый ProjectVariant findById (int projectVariantId);

0 голосов
/ 11 декабря 2018

Вы можете использовать T getOne(ID id);, предоставляемый Jpa Repository, который возвращает ссылку на сущность с заданным идентификатором;

Так что в вашем сервисе вы можете использовать это:

@Override
public ProjectVariant findProjectVariantById(int projectVariantId) {
    return projectVariantRepository.getOne(projectVariantId);
}
...