Java 如何在SpringMVC中使用getById方法获取相应的名称?
我正在学习SpringMVC,我想通过Java 如何在SpringMVC中使用getById方法获取相应的名称?,java,spring,spring-mvc,spring-data-jpa,Java,Spring,Spring Mvc,Spring Data Jpa,我正在学习SpringMVC,我想通过id找到一辆车,但得到name作为回报 在我的服务类中,我调用一个通用方法getxxxbyd。这是JPA天生给我的东西 我知道我得到了整个实体,但我如何才能只接收到id对应的name 示例:我调用getCarById(2),它返回Tesla 我的桌子: id | Name ---------- 1 | Ford 2 | Tesla class CarService { // code ... public Optional<Ca
id
找到一辆车,但得到name
作为回报
在我的服务类中,我调用一个通用方法getxxxbyd
。这是JPA天生给我的东西
我知道我得到了整个实体,但我如何才能只接收到id
对应的name
示例:我调用getCarById(2)
,它返回Tesla
我的桌子:
id | Name
----------
1 | Ford
2 | Tesla
class CarService {
// code ...
public Optional<CarEntity> getCarById(int id) {
return carRepository.findById(id);
}
我的服务:
id | Name
----------
1 | Ford
2 | Tesla
class CarService {
// code ...
public Optional<CarEntity> getCarById(int id) {
return carRepository.findById(id);
}
class服务{
//代码。。。
公共可选getCarById(int id){
返回carRepository.findById(id);
}
有两种方法可供选择
提出你自己的问题
您可以用JQPL编写自己的查询,只检索名称
例如,您可以在存储库中创建类似的方法
@Query("select t.name from CarEntity where id = ?1")
public String findNameById(Integer id);
有关Spring Data Jpa此功能的更多信息
投影
第二种选择是进行投影。正如在
Spring数据查询方法通常返回由存储库管理的聚合根的一个或多个实例。但是,有时可能需要对这些类型的某些属性进行投影。。Spring数据允许对专用返回类型进行建模,以便更有选择地检索这些类型的部分视图管理的聚合
简单地说,它允许您将查询结果聚合到某些有限的属性集中,而不是整个实体中
特别是对于您的需求,我建议使用第一种方法,但这两种方法都值得了解