@Data @ApiModel(value = "塔站") public class BisTowerVO { private Integer id; private Integer projectId; private String towerNo; } @Data @ApiModel(value = "项目管理") public class BisProjectVO { @ApiModelProperty(value = "id") private Integer id; @ApiModelProperty(value = "项目名称") private String projectName; } 这是两个VO类,BisTower类的projectId关联BisProject类的id,帮我写个查询,只显示towerNo字段的值和projectName 用mybtais-plus写,只写servcie ,不要写mapper和sql
时间: 2024-02-04 19:04:09 浏览: 120
Spring Data Jpa 复合主键的实现
好的,可以参考下面的代码实现:
```java
@Service
public class BisTowerService {
@Autowired
private BisTowerMapper towerMapper;
@Autowired
private BisProjectMapper projectMapper;
public List<Map<String, Object>> listTowerWithProjectName() {
List<BisTower> towerList = towerMapper.selectList(null);
List<Map<String, Object>> resultList = new ArrayList<>();
for (BisTower tower : towerList) {
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("towerNo", tower.getTowerNo());
BisProject project = projectMapper.selectById(tower.getProjectId());
resultMap.put("projectName", project == null ? null : project.getProjectName());
resultList.add(resultMap);
}
return resultList;
}
}
```
在这个实现中,我们注入了 BisTowerMapper 和 BisProjectMapper,分别用来查询 BisTower 和 BisProject 对象。在 `listTowerWithProjectName()` 方法中,我们首先查询出所有的 BisTower 对象,然后遍历每个对象,对于每个对象,我们都创建一个 `Map<String, Object>` 对象,将 `towerNo` 和 `projectName` 两个属性加入到这个 Map 对象中,最后将这个 Map 对象加入到结果列表中。在查询 projectName 时,我们利用 BisTower 对象中的 `projectId` 属性,查询出对应的 BisProject 对象,然后从 BisProject 对象中取出 `projectName` 属性的值。需要注意的是,如果查询出来的 BisProject 对象为 null,则说明该 BisTower 对象中的 projectId 属性没有对应的 BisProject 对象,此时 `projectName` 属性的值应该为 null。
阅读全文