我正在使用 JDO 来查询我的数据库。实体类看起来像这样:
class Entity
{
// other members of the class
List<String> stuff;
// members and methods
}
我正在针对标准化接口编写 Web 服务。该界面允许用户根据一组过滤器搜索实体对象。其中之一是可能的东西列表。为了更清楚起见,用户可以提供一个字符串列表,我们将其称为 stuffQuery。用户可以要求服务返回所有 Entity 对象,其中 stuff 列表至少包含 stuffQuery 列表中的一个元素。我在 JDO 中找不到编写此查询的方法。实际上,这将是所有 Entity 对象的返回,其中 stuff 和 stuffQuery 的交集不为空。
我现在唯一的想法是通过基本上循环通过 stuffQuery 将一系列 stuff.contains(stuffQuery.get(idx)) 过滤器 OR'ed 到 JDO 查询的过滤器字符串来构建过滤器。太丑了 我不喜欢它。如果有更优雅的解决方案,我将不胜感激。
环境:Java、Spring Framework、Datanucleus