【发布时间】:2015-05-11 06:32:33
【问题描述】:
我必须使用 8 个字段的 POJO“订单”,每个字段都是“订单”表中的一列。 DB 模式是非规范化的(更糟糕的是,被认为是最终的和不可更改的)所以现在我必须编写一个搜索模块,它可以使用上述 8 个字段的任意组合执行搜索。
有什么方法可以做到这一点吗?现在,我在一个新的 POJO 中获取输入,并通过 8 个 IF 语句查找非 NULL 值。每次找到这样的值时,我都会将其添加到 SELECT 语句中的 WHERE 条件中。
这是我所希望的最好的吗?可以说选择一些最低标准更好,然后在内存中迭代接收到的集合,只保留与其余标准匹配的条目吗?如果有用的话,我可以提供伪代码。使用 Java 1.7、JSF 2.2 和 MySQL。
【问题讨论】:
-
我会删除 java 和 jsf 标签并添加 jpa 或 jdbc。但是关于这个问题:只需使用八个 if 语句。只要确保你有所有的索引