Spring Boot JPA 选择特定列结果应为 JSON 格式

问题描述

Spring Boot JPA 选择特定列结果应为 JSON 格式

@Query(value = "SELECT id,property_id,display_name FROM property_basic_property_details WHERE status='1' and unique_id=:unique_id",nativeQuery = true) public List propertydisplayname(String unique_id);

@GetMapping("/propertydisplayname/{unique_id}")
public List<PropertyBasicPropertyDetails> propertydisplayname(@PathVariable String unique_id){
    List<PropertyBasicPropertyDetails> PropertyBasicPropertyDetails1= propertyBasicPropertyDetailsRespository.propertydisplayname(unique_id);
    return PropertyBasicPropertyDetails1;
}

错误

无法执行查询sql [SELECT id,display_name FROM property_basic_property_details WHERE status='1' and unique_id=?]

输出

{ { “身份证”:1, "property_id":pp_001,“显示名称”:test1, },{ “身份证”:2, "property_id":pp_002,“显示名称”:test2, },}

解决方法

在您定义查询的存储库中,在提及函数之前提及 List

@Query(value = "SELECT id,property_id,display_name FROM property_basic_property_details WHERE status='1' and unique_id=:unique_id",nativeQuery = true)
public List<PropertyBasicPropertyDetails> propertydisplayname(String unique_id);

在控制器中,(与您在不包含对象的情况下定义的方式相同,但没有任何区别)

@GetMapping("/propertydisplayname/{unique_id}")
public List<PropertyBasicPropertyDetails> propertydisplayname(@PathVariable String unique_id){
    return propertyBasicPropertyDetailsRespository.propertydisplayname(unique_id);
}