如果我的搜索字段数为20或更多且任何组合都应该有效,那么最佳方法是什么。有没有什么特别的方法可以在openJPA中完成,或者本机SQL更好。任何想法都会有所帮助。谢谢。
答案 0 :(得分:1)
您可以在存储过程或参数化SQL语句中尝试这样的操作。这样,即使只有少数字段具有值,您也可以传入所有字段。
@param1 varchar(25),
@param2 int,
@param3 varchar(10),
@param4 char(1)
SELECT column1, column2, column3, column4
FROM TABLE
WHERE (column1 = @param1 OR @param1 IS NULL)
AND (column2 = @param2 OR @param2 IS NULL)
AND (column3 = @param3 OR @param3 IS NULL)
AND (column4 = @param4 OR @param4 IS NULL)
答案 1 :(得分:0)
我认为您可能希望使用“Hibernate Search”之类的东西,它将全文搜索引擎的强大功能带入数据库模型。因此,您可以提供类似Google搜索功能,以执行客户想要执行的任何搜索组合。
我开发了一个带有GUI的演示应用程序来测试各种查询类型。
答案 2 :(得分:0)
我相信使用标准api是最好的前进方式。
请阅读该链接并检查您自己的链接:
答案 3 :(得分:0)