java - 错误:从 Spring Boot 和 SQL Server 制作的 API 获取重复列表记录
问题描述
我在 SQL Server 中创建了一个存储过程,它工作正常,如下所示:
exec udf_get_gio_hang_by_id_khach_hang @id_khach_hang='KH00003368'
结果是 2 条记录,如下所示:
我的目的是创建一个 API 来获取上述记录的列表。所以我通过 Spring Boot 创建 API,如下所示:首先我创建一个模型GioHang.java
@Entity
public class GioHang implements Serializable {
@Id
private String id_khach_hang;
private String id_xe;
private int so_luong;
//setter,getter
}
然后我创建了一个存储库接口GioHangRepo.java
@Repository
public interface GioHangRepo extends JpaRepository<GioHang,String> {
@Query(value = "{call udf_get_gio_hang_by_id_khach_hang(:id_khach_hang)}",nativeQuery = true)
public List<GioHang> get_list_gio_hang_via_id_khach_hang(@Param("id_khach_hang") String id_khach_hang);
}
接下来我创建了一个服务GioHangService.java
@Service
@Transactional
public class GioHangService {
@Autowired
private GioHangRepo gioHangRepo;
public List<GioHang> getGioHangById_khach_hang(String id_khach_hang)
{
return this.gioHangRepo.get_list_gio_hang_via_id_khach_hang(id_khach_hang);
}
}
最后,我在 GioHangResource.java
@RestController
@RequestMapping("/gio_hang")
public class GioHangResource {
@Autowired
private GioHangService gioHangService;
@GetMapping("/getGioHangById_khach_hang/{id_khach_hang}")
public ResponseEntity<List<GioHang>> getGioHangById(@PathVariable("id_khach_hang") String id_khach_hang)
{
List<GioHang> gh = this.gioHangService.getGioHangById_khach_hang(id_khach_hang);
return new ResponseEntity<>(gh,HttpStatus.OK);
}
}
我大摇大摆地测试 API,但我得到了如下重复记录的列表:
我不知道为什么列表中的记录都与第一条记录相同?
请帮我。
解决方案
我猜这个错误是因为我在 SQL Server 中设置了主键id_khach_hang
,但只为其中一个设置了如果
:为 and制作外键,并记住为id_xe
@Id
@Id
id_khach_hang
id_xe
Id_record
id_khach_hang
id_xe
@Id
id_record
推荐阅读
- c# - 如何在 ASP.NET Core 中使用 HttpContextAccessor 读取 URI 参数
- r - 使用 compare_means 创建循环
- python - 使用beautifulsoup将大型xml文件拆分为多个文件
- javascript - Angular 元素 - Element.createShadowRoot 弃用
- python - 如何在线程之间共享对象?
- c# - 如何在 MessagePack 中使用 Primitive API?
- java - 为什么 Mockito 期望我的验证方法被“Nothing”调用?
- c# - Visual Studio 中 C# 的使用提示
- c# - 如何在 ASP.NET Core MVC 中显示特定的 ModelState 错误?
- python - 带 boto3 的 DynamoDB - 限制充当页面大小