jpa 中的方法 - 存储库
Method in jpa - repository
我在 ProjectVariantRepository 中有一个方法 returns 基于 id 的项目变体。我的问题是当我
ProjectVariant projectVariant = projectVariantService.findProjectVariantById(projectVariantId);
System.out.println("Project Variant: " + projectVariant);
我的项目 Variant 为空,但在数据库中我有一个 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);
}
}
我不明白我做错了什么..
您可以使用 Jpa 存储库提供的 T getOne(ID id);
returns 对具有给定标识符的实体的引用;
所以在你的服务中你可以使用这个:
@Override
public ProjectVariant findProjectVariantById(int projectVariantId) {
return projectVariantRepository.getOne(projectVariantId);
}
实体 class 中的 属性 名称如何? Id 或 projectVariantId?如果它是 Id,你应该创建你的方法:
@存储库
public 接口 ProjectVariantRepository 扩展 JpaRepository {
public ProjectVariant findById(int projectVariantId);
我在 ProjectVariantRepository 中有一个方法 returns 基于 id 的项目变体。我的问题是当我
ProjectVariant projectVariant = projectVariantService.findProjectVariantById(projectVariantId);
System.out.println("Project Variant: " + projectVariant);
我的项目 Variant 为空,但在数据库中我有一个 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);
}
}
我不明白我做错了什么..
您可以使用 Jpa 存储库提供的 T getOne(ID id);
returns 对具有给定标识符的实体的引用;
所以在你的服务中你可以使用这个:
@Override
public ProjectVariant findProjectVariantById(int projectVariantId) {
return projectVariantRepository.getOne(projectVariantId);
}
实体 class 中的 属性 名称如何? Id 或 projectVariantId?如果它是 Id,你应该创建你的方法:
@存储库 public 接口 ProjectVariantRepository 扩展 JpaRepository { public ProjectVariant findById(int projectVariantId);