【问题标题】:Validate Search Criteria : Java验证搜索条件:Java
【发布时间】:2015-10-20 23:58:05
【问题描述】:

我必须实现基于近 12 个不同字段的搜索。 对于验证和处理,我面临着很多挑战。以下是我正在寻求意见/帮助的那些。

Classes:
SearchCriteria
(has) UserCriteria and AddressCriteria

PS。一些字段与用户相关,例如名字,出生日期等在 UserCriteria 中,一些字段与地址相关,例如街道名称、建筑物编号等将进入 AddressCriteria

我必须根据这些条件搜索用户。

  • 验证至少一个参数不为空/不为空。我不 希望继续检查每个字段是否为空。
  • 在搜索之前根据您需要启动的条件进行验证 搜索。例如用户或地址?
  • 以无需担心的方式实施验证 特定字段验证,然后将其添加到查询条件中

编辑:

注意:我需要准备一条包含所有有效字段的消息,这些字段将传递给帮助我查找所有记录的模块,我不直接处理数据库。

【问题讨论】:

    标签: java validation


    【解决方案1】:

    如果你的两个对象(UserCriteria 和 AddressCriteria)都有类似的方法,

    public ArrayList<String> getSearchableFields() {
    
        //return a ArrayList of searchable fields
    }
    

    然后您就可以在每个方法上调用 getSearchableFields() 并查看哪些字段可用于您的搜索。

    【讨论】:

    • 嘿,我认为这可能是一个可怕的选择。想象一下,如果您想实现相同的功能,您需要做什么
    • 我想用方法返回值 EG 中的值构建一个 SQL 字符串。 WHERE name = 'xxx' and age = 'yyy'...那当然是如果你使用SQL...这只是一个想法,我没有尝试实现它
    • 哦,这样还是可以的,但我只需要准备一条消息并将其发送到其他模块,这将帮助我获取详细信息,让我更新问题以避免混淆。
    • 您仍然不能像构建 SQL 语句那样使用 ArrayList 来构建消息吗?
    • 不,我必须填充键和值,我可以使用列表以防我只需要填充键,例如用户名
    猜你喜欢
    • 2020-09-05
    • 2019-02-03
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2021-06-01
    相关资源
    最近更新 更多