gpt4 book ai didi

java - Spring Boot如何在发送响应之前修改实体中的列表

转载 作者:行者123 更新时间:2023-12-01 22:33:22 26 4
gpt4 key购买 nike

如何在发送之前修改实体中的列表?

说明:

我有一个建筑实体,其中包含公寓列表:

@Entity
@Table(name = "building")
public class Building {

...

@OneToMany(mappedBy = "building", cascade = CascadeType.ALL)
private Set<Flat> flats;
}

我还有用户对象,其角色:经理或商业。经理可以看到所有单位,但商业只能看到他创建的单位。

现在我需要一个端点来查找建筑物:

@RestController
@RequestMapping("/building")
public class BuildingController {
@GetMapping("/{id}")
public Building getBuildingById(@PathVariable(value = "id") Long id) {
return buildingService.findById(id);
}
}

但在这种情况下,即使用户是商业用户,该建筑拥有的所有公寓都会发送。 如何修改公寓列表以仅发送好的公寓?

最佳答案

我发现的解决方案是使用数据传输对象(DTO)。当我从数据库获取实体时,我会创建一个 DTO 并在发送之前仅填充所需的信息。这是 BuildingDto.java 的示例:

public class BuildingDto implements Serializable {
...
private List<FlatDto> flats;
private List<FlatUnauthorizedDto> flatsUnauthorized;

// Constructors + getters + setters
}

关于java - Spring Boot如何在发送响应之前修改实体中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58541048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com