首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:从Spring和Server生成的API获取的重复列表记录

错误:从Spring和Server生成的API获取的重复列表记录
EN

Stack Overflow用户
提问于 2021-03-27 09:36:48
回答 2查看 367关注 0票数 1

我在Server中创建了一个存储过程,它运行良好,如下所示:

代码语言:javascript
复制
exec udf_get_gio_hang_by_id_khach_hang @id_khach_hang='KH00003368'

结果是2个记录,如下所示:

我的目的是创建一个API来获取上面的record.So列表,我通过Spring创建了API,如下所示:首先,我创建了一个模型GioHang.java

代码语言:javascript
复制
@Entity
public class GioHang implements Serializable {
    
    @Id
    private String id_khach_hang;
    
    
    private String id_xe;
    private int so_luong;
    
    //setter,getter

}

然后我创建了一个存储库接口GioHangRepo.java

代码语言:javascript
复制
@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

代码语言:javascript
复制
@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中创建了API。

代码语言:javascript
复制
@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);
    }
}

我在swagger中测试API,但是我得到了重复记录的列表,如下所示:

我不知道为什么名单上的记录都和第一张一样?

请帮帮我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-27 14:58:45

我猜这个错误是因为我在Server中为id_khach_hangid_xe设置了主键,但是如果其中之一是:解决方案1:为id_khach_hangid_xe解决方案2创建@Id:您可以添加一个像Id_record这样的列,然后为它设置主键,并为id_khach_hangid_xe.and设置外键--记住,make @Id用于id_record

票数 1
EN

Stack Overflow用户

发布于 2021-03-27 13:38:56

我认为这个问题与这样一个事实有关:您使用id_khach_hang作为主键,这应该是唯一的,这在您的情况下不会发生。您应该有一个列,该列应该具有唯一的值,并将其用于@Id属性。

另外,在用java编写代码时,请不要使用蛇符号,这会使事情变得如此丑陋和难以理解。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66829858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档