如何使用Spring数据REST公开自定义DTO crud存储库?

前端之家收集整理的这篇文章主要介绍了如何使用Spring数据REST公开自定义DTO crud存储库?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我不想暴露我的模型类(jpa实体),而是将它们的属性的不同子集暴露给不同的数据传输对象(DTO).
想法是DTO CrudRepository< - > JpaRepository< - >实体,我想通过Spring Data REST公开DTO CrudRepository.

例:

实体:

  1. @Entity
  2. @Table(name = "groups")
  3. public class Group {
  4. private Long id;
  5. private String name;
  6. private Set

JpaRepository:

  1. @RepositoryRestResource(exported = false)
  2. public interface GroupDao extends JpaRepository

DTO:

  1. public class GroupWithoutRelationsDto {
  2. private Long id;
  3. private String name;
  4. public Long getId() {
  5. return id;
  6. }
  7. public void setId(Long id) {
  8. this.id = id;
  9. }
  10. @NotBlank
  11. public String getName() {
  12. return name;
  13. }
  14. public void setName(String name) {
  15. this.name = name;
  16. }
  17. }

DTO CrudRepository:

  1. public interface GroupDtoDao extends CrudRepository

执行:

  1. @Repository
  2. public class GroupDtoDaoImpl extends GenericDtoDao

GenericDtoDao:

  1. @NoRepositoryBean
  2. public abstract class GenericDtoDao

在这个例子中,我想用Spring数据REST公开GroupDtoDao.

在其他bean中,我可以自动装配GroupDao和GroupDtoDao,因此两者都由Spring的上下文管理.如果我没有使用@RepositoryRestResource(exported = false)注释GroupDao,那么JpaRepository将作为REST服务公开,所以我认为Spring数据REST配置得很好.

如何告诉它公开我的自定义CrudRepository?

最佳答案
a JIRA issue澄清如何做到这一点.

目前,SDR团队表示“我们通常建议只使用Jackson mixins来挂钩自定义序列化器,自定义输出等.请参阅Spring RESTBucks的示例.”

猜你在找的Spring相关文章