【问题标题】:Wrong comparator show in Hybris Backoffice for enum fieldHybris Backoffice 中枚举字段的比较器显示错误
【发布时间】:2020-07-10 15:41:09
【问题描述】:

我在 Hybris Backoffice 中遇到了一个特殊问题。当我搜索促销规则(营销-> 促销规则)时,可用字段之一是 Type。然而,当我尝试使用该字段时,高级搜索小部件中的比较器不正确。 status 字段的类型是 HybrisEnumValue。但是比较器只包含三个选项:InIs EmptyIs not empty

例如,订单状态也是一个类型为 HybrisEnumValue 的字段,但在高级搜索中它确实显示了正确的比较器选项:

显然,这个In 运算符在搜索时会导致问题。如何让它显示正确的比较器值,即Equals而不是In

编辑:从@geffchang 的回答中可以明显看出,我并没有明确表示我只能选择一个值:

此外,当 Hybris 将查询转换为 SQL 时,它会以错误的 WHERE 子句结束:WHERE item_t0.p_status IN ? - 而不是 in 它应该有 =

【问题讨论】:

    标签: hybris advanced-search backoffice


    【解决方案1】:

    您发现了什么问题?

    就个人而言,我认为这很好。 In 允许您以OR 的方式选择多个值。因此, (Published, Unpublished) 中的状态为您提供已发布和未发布的规则。如果你只想要Published,那也没关系。

    【讨论】:

    • 不,它不允许选择多个值。我只能从下拉列表中选择一个值。此外,这会导致 SQL 异常,因为它使用了不正确的语法。它将选择转换为这个 where 子句 WHERE item_t0.p_status IN ? - 而不是 in 它应该有 =
    • @AleksG 我用截图更新了我的答案。这就是它应该的样子。
    • 看起来不是这样 - 我用额外的屏幕截图更新了我的问题。您使用的是什么版本的 Hybris?
    • @AleksG 刚刚比较了我们的截图,它们看起来确实不同。我正在使用 1905.13。你的可能是一个错误,或者没有正确设置。
    • 我使用的是 1905,但我认为它是 1905 的旧版本。升级到新版本可能是个问题,因为我在安装上运行了数百万美元的实时站点,所以任何版本升级风险很大,可能需要几个月的时间来测试
    猜你喜欢
    • 2019-01-31
    • 2011-05-28
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    相关资源
    最近更新 更多