It's my first time encountering this error that says
`Description:
Parameter 0 of constructor in com.team.zah.blog.service.Impl.PostServiceImpl required a bean of type 'com.team.zah.blog.repository.PostRepository' that could not be found.
Action:
Consider defining a bean of type 'com.team.zah.blog.repository.PostRepository' in your configuration.`
I can't fathom the problem here as I've clearly used the lombok annotation:
@AllArgsConstructor
in my class
Class code here:
package com.team.zah.blog.service.Impl;
import com.team.zah.blog.dto.PostDTO;
import com.team.zah.blog.model.Post;
import com.team.zah.blog.repository.PostRepository;
import com.team.zah.blog.service.PostService;
import lombok.AllArgsConstructor;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class PostServiceImpl implements PostService {
private PostRepository postRepository;
private ModelMapper modelMapper;
@Override
public PostDTO create(PostDTO postDTO) {
Post post = modelMapper.map(postDTO, Post.class);
Post savedPost = postRepository.save(post);
return modelMapper.map(savedPost, PostDTO.class);
}
}
I tried to manually do it like this
@Autowired
public void setPostRepository(PostRepository postRepository) {
this.postRepository = postRepository;
}
@Autowired
public void setModelMapper(ModelMapper modelMapper) {
this.modelMapper = modelMapper;
}
but I still get the problem of missing bean.
I wonder what the problem here is?
It works with @RequiredArgsConstructor
and final fields.
package com.team.zah.blog.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.team.zah.blog.model.Post;
public interface PosRepository extends JpaRepository<Post, Long> {
}
package com.team.zah.blog.service.Impl;
import com.team.zah.blog.dto.PostDTO;
import com.team.zah.blog.model.Post;
import com.team.zah.blog.repository.PostRepository;
import com.team.zah.blog.service.PostService;
import lombok.RequiredArgsConstructor;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class PostServiceImpl implements PostService {
private final PostRepository postRepository;
private final ModelMapper modelMapper;
@Override
public PostDTO create(PostDTO postDTO) {
Post post = modelMapper.map(postDTO, Post.class);
Post savedPost = postRepository.save(post);
return modelMapper.map(savedPost, PostDTO.class);
}
}