【发布时间】:2018-08-04 12:35:06
【问题描述】:
我的 Web 应用程序中有许多服务执行经典的 CRUD 操作,这些是参数部分。为了避免为每个实体类创建一个存储库接口,我想创建一个通用存储库。我尝试了下面的代码,但只有在我有一个控制器时才有效。
public class BaseController<T extends BaseEntity> {
@Autowired
protected JpaRepository<T, Integer> dao;
}
@RestController
@RequestMapping("matieres")
@Api(value = "Matieres", tags = {"Parametrages"})
public class MatiereController extends BaseController<Matiere> {
@GetMapping
public Page<Matiere> find(
@RequestParam(defaultValue = "0", required = false, name="page") Integer page,
@RequestParam(defaultValue = "20", required = false, name="size") Integer size) {
return this.dao.findAll(PageRequest.of(page, size));
}
@PostMapping
public ResponseEntity<Matiere> create(@RequestBody Matiere matiere) {
return ResponseEntity.ok(this.dao.save(matiere));
}
}
【问题讨论】:
-
你的目标是什么,会发生什么?有什么例外吗?
-
我的目标是创建一个通用存储库或控制器,而不是为每个实体类创建一个存储库接口。我有这些异常说明:com.simba.controllers.BaseController 中的字段 dao 需要一个找不到的 'org.springframework.data.jpa.repository.JpaRepository' 类型的 bean。行动:考虑在你的配置中定义一个“org.springframework.data.jpa.repository.JpaRepository”类型的bean。
标签: spring-boot spring-repositories