2016-08-15 66 views
0

我在我的服务中使用了MongoRepository。就我而言,我有三个名字分别为“名字”,“年龄”和“性别”的字段。我可以有下面的方法在我的界面来查询数据:在MongoRepository中忽略getBy ****()函数中的参数

List<People> getByName(String name); 
List<People> getByAge(String age); 
List<People> getByNameAndGender(String name, String gender); 
...and so on... 

现在我想用这3个领域的每个组合查询数据,所以我需要在这里写7(3 + 3 + 1)的方法和它真的很丑。

我试着写类似

List<People> getByNameAndAgeAndGender(String name, String age, String gender); 

如果输入只有两个字段:name =克里斯,年龄= 18,那么我可以打电话给

List<People> peoples = getByNameAndAgeAndGender("Chris", "18", "*") 

得到的名单名字是克里斯和年龄的人是18岁。我怎样才能达到这个目标?我真的不想写一个大的“if ... else if ... else if ...”身体。谢谢!

回答

1

试试这个:

List<People> getByNameLikeAndAgeLikeAndGenderLike(String name, String age, String gender); 
+0

感谢@TheKojuEffect!它适用于如果某些参数错过的情况。但所有带“喜欢”字段都可能导致其他问题。例如:如果我想让所有打电话给克里斯和18岁的人,一个叫基督教的18岁的人也可能在名单上,因为基督徒是“像”克里斯。 –

+0

嗨@KeLiu,在这种情况下,我想到的解决方案是创建一个自定义实现。我不认为这是可能的方法名称查询。祝一切顺利, – TheKojuEffect