Java 用搜索Bean表示查询的优雅方式是什么?
在我们的项目中,我们有一个bean,但我们也希望在该bean上表达标准的CRUD查询。我们希望能够过滤某些字段(范围、相等、排除等)。现在我们正在考虑使用一个SearchBean来表示这样一组过滤器。然而,我们意识到这个搜索bean几乎与我们实际的bean相同,我们很难想出一个更优雅的解决方案Java 用搜索Bean表示查询的优雅方式是什么?,java,javabeans,Java,Javabeans,在我们的项目中,我们有一个bean,但我们也希望在该bean上表达标准的CRUD查询。我们希望能够过滤某些字段(范围、相等、排除等)。现在我们正在考虑使用一个SearchBean来表示这样一组过滤器。然而,我们意识到这个搜索bean几乎与我们实际的bean相同,我们很难想出一个更优雅的解决方案 解决这个问题的好方法是什么?我们不寻求任何特定于框架的解决方案 恐怕这个问题太开放了,无法给出一个好的答案。这取决于你的目标是什么。另外,您没有明确提到您正在使用数据库(与搜索内存相反),但我假设您正在使
解决这个问题的好方法是什么?我们不寻求任何特定于框架的解决方案 恐怕这个问题太开放了,无法给出一个好的答案。这取决于你的目标是什么。另外,您没有明确提到您正在使用数据库(与搜索内存相反),但我假设您正在使用数据库 你的方法(FindentiesLikeMe)听起来是一个很好的简单方法 有很多查询语言(JPQL/SQL/etc)可以实现(可以通过清理查询并将其传递到较低的层,也可以通过直接解析查询) 如果您的服务器结构足够像树,那么您可以接受XPath并返回与XPath匹配的对象空间 这三种方法都提供了范围、相等和排除。我的建议是保持它的简单(你所拥有的听起来很好),直到它崩溃(要么是由于性能,要么是复杂的客户端API,要么是缺乏灵活性),然后换成更好的
最终,一种成熟的查询语言可能会给您带来最大的灵活性,但也可能是最难实现的,特别是当您正在解析查询,而不是将其传递到较低的层时。我担心这个问题过于开放,无法给出一个好的答案。这取决于你的目标是什么。另外,您没有明确提到您正在使用数据库(与搜索内存相反),但我假设您正在使用数据库 你的方法(FindentiesLikeMe)听起来是一个很好的简单方法 有很多查询语言(JPQL/SQL/etc)可以实现(可以通过清理查询并将其传递到较低的层,也可以通过直接解析查询) 如果您的服务器结构足够像树,那么您可以接受XPath并返回与XPath匹配的对象空间 这三种方法都提供了范围、相等和排除。我的建议是保持它的简单(你所拥有的听起来很好),直到它崩溃(要么是由于性能,要么是复杂的客户端API,要么是缺乏灵活性),然后换成更好的
最终,一种成熟的查询语言可能会给您带来最大的灵活性,但可能是最难实现的,特别是当您正在解析查询,而不是将其传递到较低的层时。假设您希望在应用程序服务器中处理它。 你可以考虑使用 番石榴系列 或 收藏品 而这种豆子是由豆荚制成的
您必须为要支持的过滤器类型实现谓词类 假设您希望在应用程序服务器中处理它。 你可以考虑使用 番石榴系列 或 收藏品 而这种豆子是由豆荚制成的 您必须为要支持的过滤器类型实现谓词类