我正在构建一个域模型,并使用Spring Data Mongo注释注释类,以将它们映射到mongo集合和文档。
假设我有以下情况。有两个实体类:
客户
@TypeAlias("customer")
@Document(collection = "customers")
public class Customer implements Identifiable<String> {
@Id
@Size(min = 8, max = 32)
private String id;
@NotNull
@Indexed
private String name;
// (... setters and getters are skipped)
}
权利要求
@TypeAlias("claim")
@Document(collection = "claims")
public class Claims implements Identifiable<String> {
@Id
@Size(min = 8, max = 32)
private String id;
private Customer customer;
// (... setters and getters are skipped)
}
请考虑以下情形 - 运营商正在搜索客户(使用名称字段上的索引),然后使用客户对象的副本创建声明。创建声明后可以更改客户对象,但不应影响声明数据(这就是复制用户的原因)。实际情况涉及更大的实体。
问题是 - 如何在重用域对象(没有或最少代码重复)的情况下,阻止在索赔集合上创建索引customer.name
?
提前致谢。