使用springboot框架中的注解@ManyToOne遇到的坑

包如下的错:java.lang.IllegalStateException: Cannot call sendError() after the response has been committed

1.在一个对象的属性中使用@ManyToOne对于某一个关联的字段时,在使用findAll会报如下的错,如下图是在一个对象中使用了@ManyToOne

但是findAll会报如下的错,并且查询时返回很多的字段和数据,但是有些不是你想要的,如下图所示

解决方法:

在查询的时候,不返回@ManyToOne注解的这个字段即可解决这个错,代码如下

 @RequestMapping(method = RequestMethod.GET)
    public Object listAllStreams(@RequestBody JSONObject param) {
        JSONObject result;
        try {
            List<Stream> streams = streamService.listAll(param);
            JSONArray jsonArray = new JSONArray();
            for(Stream stream:streams){
                JSONObject object = new JSONObject();
                object.fluentPut("name",stream.getName()).fluentPut
                        ("fields",stream.getFields()).fluentPut
                        ("from", stream.getFrom()).fluentPut
                        ("groupBy",stream.getGroupBy()).fluentPut
                        ("identifier",stream.getIdentifier()).fluentPut("keyBy",
                        stream.getKeyBy()).fluentPut("solution",stream.getSolution());
                jsonArray.add(object);
            }
            result = onSuccess(streams);
        } catch (Exception e) {
            log.error("{query all stream failed, reason : {}}", e);
            String error = e.getMessage();
            result = onFail(error);
        }
        return result;
    }

最后返回的结果与预期一样。这是个人的经验总结,如有更好欢迎讨论。

猜你喜欢

转载自blog.csdn.net/wyz0516071128/article/details/87974339