小编ksc*_*ann的帖子

使用Spring Data REST处理复杂的聚合根

现在,如果涉及复杂的聚合根,我无法获得Spring Data REST背后的概念.如果我正确理解域驱动设计(这是AFAIK弹簧数据的基本原理吗?),那么只能通过存储库公开聚合根.

比方说,我有两个类PostComment.两者都是实体,Post有一个@OneToMany List<Comment> comments.

因为Post显然是聚合根我想通过一个访问它PostRepository.如果我创建@RepositoryRestResource public interface PostRepository extends CrudRepository<Post, Long>REST访问Post工作正常.

现在comments是内联渲染,不作为子资源公开/posts/{post}/comments.只有当我引入一个CommentRepository(如果我想坚持使用DDD时我不应该这样做),就会发生这种情况.

那么如何在复杂的域对象中正确使用Spring Data REST?假设你必须检查所有注释都不包含超过X个字符.这显然是Post聚合根处理的一些不变量.你会把逻辑放在哪里Post.addComment()?如何将其他类公开为子资源,以便我可以在/posts/{post}/comments/{comment}不引入不必要的存储库的情况下访问?

rest spring spring-data-rest

5
推荐指数
1
解决办法
1072
查看次数

标签 统计

rest ×1

spring ×1

spring-data-rest ×1