Spring Boot 使用JPA/Hibernate从数据库中获取2列记录并将其存储在hashmap中

omvjsjqw  于 2023-04-20  发布在  Spring
关注(0)|答案(1)|浏览(112)

有一个名为City的表。City表有id,city_name,state_code和state_name。我想检索state_code和state_name。但不想使用“select c from City c”。我只想从表中获得这两列。
在这种情况下是否可以使用Hashmap?或者有其他可能的方法吗?
我尝试过使用基于类的投影,但是只有一种投影的用法,没有其他地方使用它,所以我觉得它会在某种程度上影响性能。
我想避免使用findAll()。

@Query(select c.stateCode, c.stateName from City c)

//Here I want to try to return stateCode and stateName
iswrvxsc

iswrvxsc1#

你能试试这个吗?

@Repository
public interface CityRepository extends JpaRepository<City, Long> {

List<City> findAll();

default Map<String, String> findAllMap() {
    return findAll().stream()
    .collect(Collectors.toMap(City::getStateCode, City::getStateName));
   }
}

参考来源:https://stackoverflow.com/a/51184124/10277150

相关问题