java - 如何在 JSON 中显示多行
问题描述
我需要显示sql 结果
在这样的 JSON 中
{
slpcode: 700,
businesspartnerparamid:{181,
195,
197,
362,
376
}
}
在春季启动应用程序中。
班级
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name="businesspartnerparamsalesperson")
public class Vendedor {
@Id
@Column(name="businesspartnerparamid", nullable = false)
private Long businessPartnerParamID;
@Column(name="Slpcode",nullable = false)
private Long slpCode;
public Long getBusinessPartnerParamID() {
return businessPartnerParamID;
}
public void setBusinessPartnerParamID(Long businessPartnerParamID) {
this.businessPartnerParamID = businessPartnerParamID;
}
public Long getSlpCode() {
return slpCode;
}
public void setSlpCode(Long slpCode) {
slpCode = slpCode;
}
}
回购
Repository
public interface VendedorRepository extends JpaRepository<Vendedor, Long> {
Optional<Vendedor> findVendedorBySlpCode (Long slpCode);
}
服务
@Service
@AllArgsConstructor
public class ApiService {
@Autowired
private final VendedorRepository vendedorRepository;
@Autowired
private final ClienteRepository clienteRepository;
public Optional<Vendedor> findVendedorByCode (Long slpCode) {
Optional<Vendedor> vendedor = vendedorRepository.findVendedorBySlpCode(slpCode);
return vendedor;
}
public Optional<Cliente> findClienteByCode (String code){
Optional<Cliente> cliente = clienteRepository.findClienteByCardCode(code);
return cliente;
}
}
控制器
@CrossOrigin
@RestController
@EnableAutoConfiguration
@RequestMapping("/vendedor")
@AllArgsConstructor
public class ApiController {
@Autowired
private ApiService apiService;
@GetMapping(value="/{slpCode}", produces = MediaType.APPLICATION_JSON_VALUE)
public Optional<Vendedor> findVendedorBySlpCode (@PathVariable Long slpCode){
return apiService.findVendedorByCode(slpCode);
}
}
我在日志上收到这条消息:
查询未返回唯一结果:94;嵌套异常是 >javax.persistence.NonUniqueResultException:查询未返回唯一结果:94
之后,我想删除/更新所有与销售人员相关的 id(将客户(id)从一个转移到另一个。
解决方案
javax.persistence.NonUniqueResultException
表示查询有多个结果。查看您的数据,确实,您slpCode
在700
.
您必须将返回类型更改为 List of Vendedor
:
List<Vendedor> findVendedorBySlpCode (Long slpCode);
如果没有找到供应商,将返回一个空列表。
推荐阅读
- azure - 什么相当于 Azure 中的 Window 服务
- spring-boot - spring security自定义身份验证失败处理程序不转发
- c# - 我应该在哪里清理 ServiceHost 的私有资源?
- python - 如何在 Python 中从 Kubernetes 集群中获取已部署的微服务的 Helm 图表版本
- class - 如何在 Java/Groovy 中基于继承获取类的实例
- python - Apache Spark 上未显示已完成或正在运行的应用程序
- amazon-cloudformation - Cloudformation for UsagePlan 与方法限制
- android - 在从受信任的 Web 活动打开的自定义选项卡中隐藏 div
- ruby-on-rails - Google App Engine Rails Postgres 无法连接到 Cloud SQL 数据库:没有这样的文件或目录
- python - Python3从CSV整数写入和读取到字符串