【发布时间】:2019-03-22 14:47:35
【问题描述】:
我是 Spring Boot 的新手,我用它来实现一个 Rest API。我有一个自引用表,其中每个项目都有一个父树结构。我已经使用 ManyToOne 来实现它,并且我得到了一个包含父对象的 json 对象。如果我得到所有项目,速度会非常慢,因为存在巨大的网络延迟和处理,因为我的树最多可以容纳 10000 个项目。
我如何使用链接来表示它,即 json 对象包含到父链接的链接和到子链接的数组。我读过 DTO 可以用来实现这一点,但我没有找到完整的细节。
我的部分代码
@Entity
@Table(name = "Item", schema = "dbo")
@Getter
@Setter
public class Item {
@Id
@GeneratedValue
@Column()
private Integer ItemID;
@Column()
private String Project;
@Column()
private String Name;
@Column()
private Integer Version;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ParentItemID", insertable = false, updatable = false)
private Item parentItem;
My controller is strait forward
@Autowired
ItemService ItemService;
@RequestMapping ("/items")
public Iterable<Item> items(@RequestParam(value = "page", defaultValue = "0") Integer page,
@RequestParam(value = "size", defaultValue = "20") Integer size, Authentication auth) {
return ItemService.findPaginated(page, size);
}
如果我能得到更多关于如何使用 DTO 或其他设计来获取链接而不是完整对象的解释,我会很高兴。
【问题讨论】:
标签: spring rest api spring-boot