这个问题当时让我头疼的很,当我写出来之后发现简单的很,发现自己是个笨蛋。
本来想直接贴代码的,还是说说场景吧,以免以后我又忘了怎么写的。
是前端传给我一个对象,对象中有它对应的另一个对象,是它的子类,我当时就有点蒙圈了,不知道怎么办才好,要不说我是个笨蛋呢。
然后在网上找办法,面向百度编程,找了半天没找到什么能让我粘贴复制就成功的东西,从业两年多来,一直粘贴复制很顺利,但是这次塞翁失了马,我只好自己动下脑子。
然后我就在父类中,定义了一个List对象数组;
然后将接收进来的数据 fulei.getziLei();
然后遍历这个list集合,再在循环中添加到数据库,然后就可以了。
下面贴一下各个类中的东西,为了搜到这篇帖子并且也是一头雾水的同行们解惑一下,当你自己写出来之后觉得豁然开朗,就会觉得这个世界又美好了起来。
entity类中
@TableField(exist = false)
private List<RemoteResultRecord> remoteResultList;
@TableField(exist = false)
private List<ThreeSpatialRecord> threeSpatialList;
@TableField(exist = false)
private List<UavImageRecord> uavImageList;
@TableField(exist = false)
这个代码,是告诉mybaits我这几个字段不是你们数据库的 ,在你跟数据库交互的时候让过他们。
service 类:
List<SpaceSeriesRecord> spaceServiceRecords = menu.getSpaceSeriesList();
for(SpaceSeriesRecord seriesRecord :spaceServiceRecords){
UUID uuid = UUID.randomUUID();
String id=uuid.toString().replaceAll("-", "");
spaceServiceConnect.setId(id);
spaceServiceConnect.setSpaceid(seriesRecord.getId());
spaceServiceConnect.setServiceid(menu.getId());
spaceServiceConnectMapper.insert(spaceServiceConnect);
}
UUID又是怎么又是怎么一回事儿呢,好像是因为当时报了主键不唯一的问题,然后我就自己给id了。
这样写应该就可以实现了,我这边是实现了的,希望可以帮到有需要的人。
本来不想贴contoller了,还是贴一下吧。
public Result<SpaceSeriesRecord> addSpaceSeries(@RequestBody SpaceSeriesRecord spaceSeries) throws Exception
只贴方法头了,具体实现和名字还是要根据需求来。
再贴一下前端传值格式吧
{
"describe": "123",
"name": "854454434",
"pid": "adfasdfdfsadfsafwertt",
"sortindex":123123,
"sortindex":123123,
"layerFieldList": [{
"sortindex": 123456,
"fieldname": "456443名44称",
"code": "编1441码",
"type": "类型",
"extent":123,
"precision":123,
"ifrequired":0
},{
"fieldname": "454474576",
"code": "453544455485",
"type": "类型",
"extent":123,
"precision":123,
"ifrequired":0
}]
}