问题描述
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);
}