Spring Data JDBC, References, and Aggregates
DDD里的核心关系,1、聚合 2、关联
多对多的关系数据结构上用2个聚合实现,领域函数上使用实体
class Book {
private @Id Long id;
private String title;
private Set<AuthorRef> authors = new HashSet<>();
// 领域服务是添加作者,数据结构是存储关联关系
public void addAuthor(Author author) {
authors.add(createAuthorRef(author));
}
private AuthorRef createAuthorRef(Author author) {
Assert.notNull(author, "Author must not be null");
Assert.notNull(author.id, "Author id, must not be null");
AuthorRef authorRef = new AuthorRef();
authorRef.author = author.id;
return authorRef;
}
}
@Table("Book_Author")
class AuthorRef {
Long author;
}