我在ProjectVariantRepository中有一个方法,该方法返回基于id的项目变体。我的问题是我什么时候做
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);
}
}
我不明白自己做错了什么。
答案 0 :(得分:0)
您可以使用Jpa Repository提供的T getOne(ID id);
,它返回对具有给定标识符的实体的引用;
因此在您的服务中,您可以使用此功能:
@Override
public ProjectVariant findProjectVariantById(int projectVariantId) {
return projectVariantRepository.getOne(projectVariantId);
}
答案 1 :(得分:0)
实体类中的属性名称如何? id或projectVariantId?如果是Id,则应创建如下方法:
@存储库 公共接口ProjectVariantRepository扩展了JpaRepository { 公共ProjectVariant findById(int projectVariantId);