gpt4 book ai didi

google-app-engine - 对象化过滤空值

转载 作者:行者123 更新时间:2023-12-02 22:22:07 24 4
gpt4 key购买 nike

如何使用 Objectify 4 通过几个参数正确过滤,考虑到其中一些参数可能为空,这意味着我不想通过这些参数进行过滤?例子:请考虑我想过滤这样的东西:

      releases = ofy().load().type(Release.class)
.filter("user.name", searchCriteria.getName())
.filter("category", searchCriteria.getCategory())
.filter("city", searchCriteria.getCity()).list();

为了与我上面所说的相匹配,我现在有以下代码,每次检查我的哪些参数为空,所以在这种情况下我不会将它们放在过滤器上:

    if (!nameEmpty && !categoryEmpty && !cityEmpty) {
releases = ofy().load().type(Release.class)
.filter("user.name", searchCriteria.getName())
.filter("category", searchCriteria.getCategory())
.filter("city", searchCriteria.getCity()).list();
} else if (!nameEmpty && !categoryEmpty) {
releases = ofy().load().type(Release.class)
.filter("user.name", searchCriteria.getName())
.filter("category", searchCriteria.getCategory()).list();
} else if (!nameEmpty && !cityEmpty) {
releases = ofy().load().type(Release.class)
.filter("user.name", searchCriteria.getName())
.filter("city", searchCriteria.getCity()).list();
} else if ...

...

我怎样才能避免这种糟糕的过滤方式,并使用 Objectify 4 只用一行(或几行)来实现过滤?

最佳答案

Query<Release> query = ofy().load().type(Release.class);

if (!nameEmpty)
query = query.filter("user.name", searchCriteria.getName());

if (!categoryEmpty)
query = query.filter("category", searchCriteria.getCategory())

if (!cityEmpty)
query = query.filter("city", searchCriteria.getCity());

releases = query.list();

关于google-app-engine - 对象化过滤空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13567830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com