问题描述
我有一个包含 Customer
实体的后端数据模型。此实体的 DTO 如下所示:
public class Customer {
private String firstname;
private String surname;
private String dateOfBirth;
}
因此,当我使用存储库从数据库中获取数据时,我会返回 List<Customer>
。将过滤器应用于存储库,因此存储库只获取满足过滤器的数据。可以创建一个过滤器对象并将其提供给存储库方法。这个过滤器对象看起来像:
public class CustomerFilter {
private String firstname;
private String surname;
private String dateOfBirth;
}
然后它看起来像:customerRepository.getAll(customerFilter)
但是对于客户端来说,有一个不同的数据模型,其中 Customer
被命名为 Buyer
。这种类型的 DTO 略有不同:
public class Buyer {
private String firstname;
private String lastname;
private String birthDate;
}
为了将数据库结果从 List<Customer>
映射到 List<Buyer>
,我制作了一个将 Customer
映射到 Buyer
的转换器。它工作得很好。
但是当客户想要获取数据时,他们可以指定过滤器,这需要在通过存储库获取数据时应用。因为他们只知道 Buyer
实体,所以客户端会创建如下过滤器:
filter: [
{ field: "lastname",value: "Doe" },{ field: "birthDate",value: "10-10-1985" }
]
上述过滤器的字段名称与 CustomerFilter
中的字段名称不同。将客户端制作的过滤器映射到 CustomerFilter
对象的最佳方法是什么。我可以制作另一个转换器,将客户端的过滤器映射到 CustomerFilter
对象。但是,当 dateOfBirth
中的字段 Customer
更改为 date
时,我需要在过滤器的转换器和数据库中的结果数据中对其进行编辑。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)