在我开发过程中,遇到一对多关系,之间的关系用中间表维系,在接收前台传的数据时,不仅需要接收对象,还需要接收一个对象数组。
Subproject subproject Listmid
如果只是一个对象的话,后台直接接收就行了。
@RequestMapping("/addSubproject")
@ResponseBody
public Result addSubproject(HttpServletRequest request, HttpServletResponse response, Subproject subproject)
但是再加上一个集合的话就会变得麻烦起来。
其实我们可以把这个集合放到实体类中,这样后台接收还是只用一个对象就可以了。
//存放多个子项目中间表数据 -- 一对多 private Listmid = new ArrayList ();
为了防止新增和修改该实体类时这个集合进行干扰,可以在set、get方法上加注解。
@OneToMany @JoinColumn(name = "id",insertable = false, updatable = false) public ListgetMid() { return mid; } public void setMid(List mid) { this.mid = mid; }
然后后台接收就行了。
这里贴一下后台接收的格式:
@RequestMapping(value ="/addSubproject", produces = "application/json;charset=UTF-8") @ResponseBody public Result addSubproject(HttpServletRequest request, HttpServletResponse response, @RequestBody Subproject subproject)
不定义一下编码格式,后台接收不到数据;不加参数上的注解会报错。
报这个:Cannot generate variable name for non-typed Collection parameter type
这里贴一下postman发请求的格式:



