有没有办法为每个查询定义一个JSON序列化程序?我希望能够为某些查询定义不同的JSON输出,类似于:
@RepositoryRestResource(collectionResourceRel = "people", path = "person")
public interface PersonJpaRepository extends JpaRepository<Person, Long> {
@JsonSerialize(using = SimplePersonSerializer.class)
List<Person> findAll();
@JsonSerialize(using = FullPersonSerializer.class)
List<Person> findByNameOrderByCreationDateDesc(String name);
}
在这种情况下,SimplePersonSerializer应该用于序列化大量的结果,而FullPersonSerializer只能用于一些结果。
答案 0 :(得分:1)
如果没有任何进一步的信息,您似乎想要投影。预测定义了实体属性的子集。官方文档中未提及该功能,但在Spring Data REST 2.1的release notes中未提及该功能。
您只需要定义包含属性子集的接口:
@Projection(name = "simple", types = Person.class)
interface SimplePerson {
String getFirstName();
String getLastName();
}
您不必更改存储库。唯一改变的是您呼叫的网址:http://myapp/people?projection=simple
。