rest - 如何检索@RepositoryRestResource 注解生成的嵌套剩余数据资源?
问题描述
我必须由 Spring 数据 REST 支持的 Spring Boot 应用程序公开的实体。
@Entity
@Table(name = "joke")
@Data
public class Joke {
@Id
@Column(name = "joke_id")
private Long id;
@Column(name = "content")
private String content;
@JsonProperty("category")
@JoinColumn(name = "category_fk")
@ManyToOne(fetch = FetchType.EAGER)
private Category category;
}
和类别
@Entity
@Table(name = "category")
@Data
public class Category {
@Id
@Column(name = "category_id")
private int id;
@Column(name = "name")
private String name;
}
它工作正常并公开了 HAL+Json 格式。我正在使用Traverson client
哪个工作正常:
Traverson client = new Traverson(URI.create("http://localhost:8080/api/"),
MediaTypes.HAL_JSON);
HashMap<String, Object> parameters = Maps.newHashMap();
parameters.put("size", "2");
PagedModel<JokesDTO> jokes = client
.follow("jokes")
.withTemplateParameters(parameters)
.toObject(new PagedModelType<JokesDTO>() {
});
return jokes;
JokesDTO 是:
@Builder(toBuilder = true)
@Value
@JsonDeserialize(builder = JokesDTO.JokesDTOBuilder.class)
@JsonInclude(Include.NON_NULL)
public class JokesDTO {
private String content;
@JsonPOJOBuilder(withPrefix = "")
@JsonIgnoreProperties(ignoreUnknown = true)
public static class JokesDTOBuilder {
}
}
我是 HAL 和 HateOS 的新手,我想实现两件事(问题是 - 是否可能,以及如何):
基于
Traverson client
调用,如何在一次调用中检索类别(或链接到类别)?如何扩展我写的内容。而且我不是在谈论@JsonProperty
在我的类定义中添加额外的注释。是否可以从 Spring 数据 REST 公开内部查询,因此我可以通过一次调用获取所有数据,是否可以使用 @RepositoryRestResource?
解决方案
推荐阅读
- mysql - 如何查看MySql用户的创建时间?
- java - 为什么 Object.class.getClassLoader().getResourceAsStream() 会直接指向 src/main/resources?
- javascript - trouble with a while loop
- android - 使用搜索栏进度值水平和垂直旋转和倾斜图像
- git - New GIT branch become new base or am I missing something?
- r - 如何在 R markdown 的 Chunk 中编写数学表达式?
- python - Largest/smallest (NOT min/max) of a list of integers (negatives included)
- go - GoSonar : how to generate go test -json > report.json
- ios - UITapGestureRecognizer 用swift4隐藏和取消隐藏标签数据
- java - 如何根据迭代器行大小禁用 adf 组件?