我有一个控制器,它使用Spring自动将HTTP请求参数映射到业务域对象。我将域对象中的字段数据保存到数据库中。
我有另一个控制器需要支持搜索与域对象相关的任何字段组合。对于某些字段(例如日期字段),我需要允许在一定范围内进行搜索。因此,我无法重用域对象,因为它只有一个日期字段。
例如,我有一个带有日期字段的Report域对象。但是,搜索需要"来自"报告日期字段和"到"报告日期字段。
我是否应该创建一组域对象,仅用于搜索主要镜像业务域对象的域对象(支持范围搜索的字段除外)?或者有更好的方法来做到这一点吗?
提前感谢您的帮助。
答案 0 :(得分:0)
如何在现有域对象中添加两个字段而不是创建新对象?
就像在报告域对象中添加两个新字段fromReportDate
和toReportDate
一样。
答案 1 :(得分:0)
您是否可以考虑引入类似Criteria的对象?
我不会根据您当前拥有的内容创建更多业务对象,只是因为您没有对这些实体进行建模 - 您正在建模用于查找它们的搜索条件。
例如,您可以执行以下操作:
CriteriaBuilder<Report> builder = new CriteriaBuilder<Report>();
builder.addFrom("date", new Date())
builder.addTo("date", new Date());
Criteria<Report> criteria = builder.build();
CriteriaBuilder
可以反射性地检查类属性,以确保您没有尝试将条件绑定到缺少的字段。