使用Search Bean表达查询的优雅方式是什么?

时间:2011-02-23 01:07:42

标签: java javabeans

在我们的项目中,我们有一个bean,但我们也希望在该bean上表达标准的CRUD查询。我们希望能够过滤某些字段(范围,等式,排除等)。现在我们正在考虑使用一个代表这样一组过滤器的SearchBean。但是我们意识到这个搜索bean几乎与我们的实际bean相同,而且我们很难想出更优雅的解决方案。

解决此问题的好方法是什么?我们不会寻找任何特定于框架的解决方案。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我担心这个问题太开放无法给出一个好的答案。这实际上取决于你的目标是什么。此外,您没有明确提到您正在使用数据库(而不是搜索内存),但我假设您是。

你的方法(findEntitiesLikeMe)听起来像一个简单的方法。

你可以实现很多查询语言(JPQL / SQL /等)(通过清理查询并将其传递给较低层或直接解析查询)。

如果您的服务器结构足够树,您可以接受XPath并返回与XPath匹配的对象空间。

这三种方法都可以为您提供范围,平等和排除。我的建议是保持简单(听起来不错),直到它崩溃(由于性能,或复杂的客户端API,或缺乏灵活性),然后更改为更好的东西。

最终,一个成熟的查询语言可能会给你最大的灵活性,但可能是最难实现的,特别是如果你正在解析查询而不是将它传递给较低层。