如何在 JSON 中显示多行
How can I show Multiple Rows in JSON
我需要展示sql result
像这样JSON
{
slpcode: 700,
businesspartnerparamid:{181,
195,
197,
362,
376
}
}
在 spring 启动应用程序中。
Class
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);
}
}
我在日志中收到此消息:
query did not return a unique result: 94; nested exception is >javax.persistence.NonUniqueResultException: query did not return a unique result: 94
在那之后,我想要delete/update所有销售人员关联的id(将客户(id)从一个转移到另一个。
javax.persistence.NonUniqueResultException
表示查询的结果不止一个。查看您的数据,确实,您有不止一行 slpCode
是 700
。
您必须将 return 类型更改为列表 Vendedor
:
List<Vendedor> findVendedorBySlpCode (Long slpCode);
如果没有找到供应商,将return编辑一个空列表。
我需要展示sql result
像这样JSON
{
slpcode: 700,
businesspartnerparamid:{181,
195,
197,
362,
376
}
}
在 spring 启动应用程序中。
Class
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);
}
}
我在日志中收到此消息:
query did not return a unique result: 94; nested exception is >javax.persistence.NonUniqueResultException: query did not return a unique result: 94
在那之后,我想要delete/update所有销售人员关联的id(将客户(id)从一个转移到另一个。
javax.persistence.NonUniqueResultException
表示查询的结果不止一个。查看您的数据,确实,您有不止一行 slpCode
是 700
。
您必须将 return 类型更改为列表 Vendedor
:
List<Vendedor> findVendedorBySlpCode (Long slpCode);
如果没有找到供应商,将return编辑一个空列表。